diff --git a/extract.py b/extract.py deleted file mode 100644 index e2bc985983e2a327211a5ac4b7c79e7208857ebb..0000000000000000000000000000000000000000 --- a/extract.py +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/python3.10 -# -*-coding:Utf-8 -* - -#============================================================================== -# TENET: extract -#------------------------------------------------------------------------------ -# Command to run the main extraction process -#============================================================================== - -#============================================================================== -# Importing required modules -#============================================================================== - -import argparse, os, glob -import shutil -import logging.config -from lib import config, structure -from lib import shacl_extraction, tenet_extraction -from lib.timer import timed -from rdflib import Graph - - -#============================================================================== -# Parameters -#============================================================================== - -# Logging -logging.config.fileConfig('logging.conf', disable_existing_loggers=False) -logger = logging.getLogger('root') - -# Configuration -CONFIG_FILE = "config.xml" - -# Default values -DEFAULT_SOURCE_TYPE = 'amr' -DEFAULT_SOURCE_CORPUS = "samples/s1/" -DEFAULT_TARGET_ID = 'DefaultTargetId' -DEFAULT_BASE_OUTPUT_DIR = None -DEFAULT_ENGINE = 'tenet' - - -#============================================================================== -# Utilities -#============================================================================== - -def control_arguments(): - arg_parser = argparse.ArgumentParser( - description=("TENET - Tool for Extraction using Net Extension ", - "by (semantic) Transduction")) - arg_parser.add_argument("--source_type", nargs='?', - default=DEFAULT_SOURCE_TYPE, - help="source_type: amr or unl") - arg_parser.add_argument("--source_corpus", - default=DEFAULT_SOURCE_CORPUS, - help="source_corpus: source corpus directory with slash") - arg_parser.add_argument("--target_id", - default=DEFAULT_TARGET_ID, - help="target_id: id for the target ontology") - arg_parser.add_argument("--base_output_dir", - default=DEFAULT_BASE_OUTPUT_DIR, - help="base_output_dir: base output directory with slash") - arg_parser.add_argument("--engine", - default=DEFAULT_ENGINE, - help="engine: shacl, tenet or new") - args = arg_parser.parse_args() - return args - - - - -#============================================================================== -# Steps -#============================================================================== - -def set_config(args): - - logger.info("-- Process Setting ") - logger.info("----- Corpus source: {0} ({1})".format(args.source_corpus, - args.source_type)) - logger.info("----- Base output dir: {0}".format(args.base_output_dir)) - logger.info("----- Ontology target (id): {0}".format(args.target_id)) - logger.debug("----- Current path: {0}".format(os.getcwd())) - logger.debug("----- Config file: {0}".format(CONFIG_FILE)) - - process_config = config.Config(CONFIG_FILE, - args.target_id, - args.source_corpus, - #target_ontology, - base_output_dir = args.base_output_dir - ) - process_config.source_type = args.source_type - # config.output_ontology_namespace = target_ontology_namespace - - process_config.engine = args.engine - - logger.debug(process_config.get_full_config()) - - return process_config - - -def init_process(config): - - logger.info("-- Creating output target directory: " + config.output_dir) - os.makedirs(config.output_dir, exist_ok=True) - - logger.debug("-- Counting number of graph files (sentences) ") - sentence_count = 0 - for file_ref in glob.glob(config.source_sentence_file, recursive = True): - sentence_count += 1 - logger.debug("----- Graph count: {0}".format(sentence_count)) - - -def run_shacl_extraction(config): - logger.debug("-- Process level: document") - work_graph = structure.prepare_work_graph_at_document_level(config) - shacl_extraction.apply(config, work_graph) - -@timed -def run_tenet_extraction(config): - - if config.process_level == 'sentence': - logger.debug("-- Process level: sentence") - - sentence_dir = config.source_sentence_file - sentence_count = 0 - result_triple_list = [] - for sentence_file in glob.glob(sentence_dir, recursive = True): - sentence_count += 1 - config.sentence_output_dir = '-' + str(sentence_count) - logger.info(" *** sentence {0} *** ".format(sentence_count)) - os.makedirs(config.sentence_output_dir, exist_ok=True) - work_graph = structure.prepare_sentence_work(config, sentence_file) - # New extraction engine running - _, new_triple_list = tenet_extraction.apply(config, work_graph) - result_triple_list.extend(new_triple_list) - - logger.info(' === Final Ontology Generation === ') - config.sentence_output_dir = '' - logger.info("-- Making complete factoid graph by merging sentence factoid graphs") - factoid_graph = Graph() - for new_triple in result_triple_list: - factoid_graph.add(new_triple) - logger.info("----- Total factoid number: " + str(len(new_triple_list))) - uuid_str = config.uuid_str - base_ref = "http://" + uuid_str + '/' + 'factoid' - logger.info("----- Graph base: {0}".format(base_ref)) - factoid_file = config.output_file.replace('.ttl', '_factoid.ttl') - logger.info("-- Serializing graph to factoid file ({0})".format(factoid_file)) - factoid_graph.serialize(destination=factoid_file, - base=base_ref, - format='turtle') - - else: # config.process_level == 'document' - logger.debug("-- Process level: document") - work_graph = structure.prepare_document_work(config) - shacl_extraction.apply(config, work_graph) - - -#============================================================================== -# Main processing -#============================================================================== - - -def run(args): - - logger.info('[TENET] Extraction Processing') - - # -- Process Initialization - logger.info(' === Process Initialization === ') - config = set_config(args) - init_process(config) - - # -- Extraction Processing using TENET Engine - if config.engine == "shacl": - logger.info(' === Extraction Processing using SHACL Engine === ') - run_shacl_extraction(config) - else: # config.engine == "tenet": - logger.info(' === Extraction Processing using New TENET Engine === ') - run_tenet_extraction(config) - - logger.info(' === Done === ') - dest_dir = config.output_dir - filePath = shutil.copy('tenet.log', dest_dir) - - -if __name__ == '__main__': - args = control_arguments() - run(args) \ No newline at end of file diff --git a/lib/transduction/timer.py b/lib/transduction/timer.py deleted file mode 100644 index fd9dfb5a661d670e44438bf02e2c5945a4d10d5f..0000000000000000000000000000000000000000 --- a/lib/transduction/timer.py +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/python3.10 -# -*-coding:Utf-8 -* - -#============================================================================== -# TENET: timer -#------------------------------------------------------------------------------ -# Module using Python decorators to log method execution time -#============================================================================== - -#============================================================================== -# Importing required modules -#============================================================================== - -import logging -import time, datetime -from functools import wraps - - -#============================================================================== -# Parameters -#============================================================================== - -# Logging -logger = logging.getLogger(__name__) - - -#============================================================================== -# Main Function -#============================================================================== - -def timed(func): - """This decorator prints the execution time for the decorated function.""" - - @wraps(func) - def wrapper(*args, **kwargs): - - exec_start = time.perf_counter() - process_start = time.process_time() - - result = func(*args, **kwargs) - - exec_end = time.perf_counter() - process_end = time.process_time() - exec_time = exec_end - exec_start - exec_time_date = datetime.timedelta(seconds=exec_time) - process_time = process_end - process_start - process_time_date = datetime.timedelta(seconds=process_time) - - message = "\n" + " *** Execution Time *** " - message += "\n" + "----- Function: {0} ({1})".format(func.__name__, - func.__module__) - message += "\n" + "----- Total Time: {0}".format(exec_time_date) - message += "\n" + "----- Process Time: {0}".format(process_time_date) - message += "\n" + " *** - *** " - logger.info(message) - - return result - - return wrapper - -def timer_return(func): - """This decorator returns the execution time of the decorated function.""" - - @wraps(func) - def wrapper(*args, **kwargs): - - exec_start = time.perf_counter() - - result = func(*args, **kwargs) - - exec_end = time.perf_counter() - exec_time = exec_end - exec_start - exec_time_date = datetime.timedelta(seconds=exec_time) - - return result, exec_time_date - - return wrapper \ No newline at end of file diff --git a/output/DefaultTargetId-20230123/DefaultTargetId-shacl_factoid.ttl b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_factoid.ttl new file mode 100644 index 0000000000000000000000000000000000000000..5bde3fe9a19cfec2e42a0c6d9f9b5feb55356880 --- /dev/null +++ b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_factoid.ttl @@ -0,0 +1,106 @@ +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_define" ; + <https://unl.tetras-libre.fr/rdf/schema#obj> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_capacity-icl-volume-icl-thing--> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_ARS-icl-object-icl-place-icl-thing---> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_ARS" . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_operator-icl-causal-agent-icl-person--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_operator" ; + <https://unl.tetras-libre.fr/rdf/schema#mod> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_operational-manager-equ-director-icl-administrator-icl-thing--> , <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#scope_01> . + +<https://tenet.tetras-libre.fr/transduction-schemes#batch_execution> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#add-disjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#extend-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-instance> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-property-uri-of-relation-object> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-composite-in-list-by-extension-1> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-class> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-atom-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-class-uri-of-net-object> , <https://tenet.tetras-libre.fr/transduction-schemes#specify-axis-of-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-event-class> , <https://tenet.tetras-libre.fr/transduction-schemes#complement-composite-class> , <https://tenet.tetras-libre.fr/transduction-schemes#init-disjunctive-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#init-conjunctive-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-relation-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#compose-atom-with-list-by-mod-2> , <https://tenet.tetras-libre.fr/transduction-schemes#link-instances-by-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#define-uw-id> , <https://tenet.tetras-libre.fr/transduction-schemes#update-net-extension-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-composite-in-list-by-extension-2> , <https://tenet.tetras-libre.fr/transduction-schemes#add-conjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#create-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#append-range-to-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#append-domain-to-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#create-atom-net> , <https://tenet.tetras-libre.fr/transduction-schemes#create-unary-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-range-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#link-to-scope-entry> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-instance-uri-of-net-object> , <https://tenet.tetras-libre.fr/transduction-schemes#compose-atom-with-list-by-mod-1> , <https://tenet.tetras-libre.fr/transduction-schemes#update-preprocessing-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#update-batch-execution-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-composite-class-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#bypass-reification> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-domain-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-class-rules> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_mission-icl-assignment-icl-thing--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_mission" . + +<https://tenet.tetras-libre.fr/transduction-schemes#preprocessing> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#link-to-scope-entry> , <https://tenet.tetras-libre.fr/transduction-schemes#update-batch-execution-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#define-uw-id> , <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-relation-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#update-preprocessing-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#bypass-reification> , <https://tenet.tetras-libre.fr/transduction-schemes#update-generation-class-rules> , <https://tenet.tetras-libre.fr/transduction-schemes#update-net-extension-rules> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_include-aoj-thing-icl-contain-icl-be--obj-thing-> + <https://unl.tetras-libre.fr/rdf/schema#aoj> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_mission-icl-assignment-icl-thing--> ; + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_include" ; + <https://unl.tetras-libre.fr/rdf/schema#obj> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_radio-channel-icl-communication-icl-thing--> . + +<https://tenet.tetras-libre.fr/transduction-schemes#class_generation> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#generate-composite-class-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-instance> , <https://tenet.tetras-libre.fr/transduction-schemes#complement-composite-class> , <https://tenet.tetras-libre.fr/transduction-schemes#add-disjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#add-conjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-class> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_system-icl-instrumentality-icl-thing--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_system" . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_operational-manager-equ-director-icl-administrator-icl-thing--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_operational_manager" ; + <https://unl.tetras-libre.fr/rdf/schema#mod> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_CDC-icl-object-icl-place-icl-thing---> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_TRANSEC-NC> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_TRANSEC-NC" . + +<https://tenet.tetras-libre.fr/transduction-schemes#net_extension> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#create-atom-net> , <https://tenet.tetras-libre.fr/transduction-schemes#create-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#create-unary-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#extend-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-instance-uri-of-net-object> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-class-uri-of-net-object> , <https://tenet.tetras-libre.fr/transduction-schemes#append-domain-to-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compose-atom-with-list-by-mod-1> , <https://tenet.tetras-libre.fr/transduction-schemes#init-conjunctive-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#init-disjunctive-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-property-uri-of-relation-object> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-composite-in-list-by-extension-1> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-atom-net> , <https://tenet.tetras-libre.fr/transduction-schemes#specify-axis-of-atom-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#compose-atom-with-list-by-mod-2> , <https://tenet.tetras-libre.fr/transduction-schemes#append-range-to-relation-net> , <https://tenet.tetras-libre.fr/transduction-schemes#instantiate-composite-in-list-by-extension-2> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_CDC-icl-object-icl-place-icl-thing---> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_CDC" ; + <https://unl.tetras-libre.fr/rdf/schema#or> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_ARS-icl-object-icl-place-icl-thing---> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_capacity-icl-volume-icl-thing--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_capacity" ; + <https://unl.tetras-libre.fr/rdf/schema#mod> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_TRANSEC-NC> . + +<https://tenet.tetras-libre.fr/transduction-schemes#relation_generation> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#compute-domain-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-event-class> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-range-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#link-instances-by-relation-property> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_create-agt-thing-icl-make-icl-do--obj-uw-> + <https://unl.tetras-libre.fr/rdf/schema#agt> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_operator-icl-causal-agent-icl-person--> ; + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_create" ; + <https://unl.tetras-libre.fr/rdf/schema#man> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> ; + <https://unl.tetras-libre.fr/rdf/schema#res> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_mission-icl-assignment-icl-thing--> . + +<https://tenet.tetras-libre.fr/transduction-schemes#generation> + <http://www.w3.org/ns/shacl#rule> + <https://tenet.tetras-libre.fr/transduction-schemes#add-conjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#add-disjunctive-classes-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#complement-composite-class> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-composite-class-from-list-net> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-instance> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-domain-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-event-class> , <https://tenet.tetras-libre.fr/transduction-schemes#compute-range-of-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#link-instances-by-relation-property> , <https://tenet.tetras-libre.fr/transduction-schemes#generate-atom-class> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> + <https://unl.tetras-libre.fr/rdf/schema#aoj> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_system-icl-instrumentality-icl-thing--> ; + <https://unl.tetras-libre.fr/rdf/schema#ben> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_operator-icl-causal-agent-icl-person--> ; + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_allow" ; + <https://unl.tetras-libre.fr/rdf/schema#obj> + <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_create-agt-thing-icl-make-icl-do--obj-uw-> . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#occurence_radio-channel-icl-communication-icl-thing--> + <https://unl.tetras-libre.fr/rdf/schema#has_id> + "SRSA-IP_STB_PHON_00100_radio_channel" . diff --git a/output/DefaultTargetId-20230123/DefaultTargetId-shacl_generation.ttl b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_generation.ttl new file mode 100644 index 0000000000000000000000000000000000000000..dc8692074ff1ea7c7276cc220168b106a5424d19 --- /dev/null +++ b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_generation.ttl @@ -0,0 +1,7009 @@ +@base <http://DefaultTargetId/shacl_generation> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix cts: <https://tenet.tetras-libre.fr/transduction-schemes#> . +@prefix dash: <http://datashapes.org/dash#> . +@prefix default3: <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix skos: <http://www.w3.org/2004/02/skos/core#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix tosh: <http://topbraid.org/tosh#> . +@prefix unl: <https://unl.tetras-libre.fr/rdf/schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dash:ExecutionPlatform a rdfs:Class ; + rdfs:label "Execution platform" ; + rdfs:comment "An platform (such as TopBraid) that may have features needed to execute, for example, SPARQL queries." ; + rdfs:subClassOf rdfs:Resource . + +dash:ExploreAction a rdfs:Class ; + rdfs:label "Explore action" ; + rdfs:comment "An action typically showing up in an Explore section of a selected resource. Cannot make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:FailureResult a rdfs:Class ; + rdfs:label "Failure result" ; + rdfs:comment "A result representing a validation failure such as an unsupported recursion." ; + rdfs:subClassOf sh:AbstractResult . + +dash:FailureTestCaseResult a rdfs:Class ; + rdfs:label "Failure test case result" ; + rdfs:comment "Represents a failure of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:GraphUpdate a rdfs:Class ; + rdfs:label "Graph update" ; + rdfs:comment "A suggestion consisting of added and/or deleted triples, represented as rdf:Statements via dash:addedTriple and dash:deletedTriple." ; + rdfs:subClassOf dash:Suggestion . + +dash:PropertyRole a rdfs:Class, + sh:NodeShape ; + rdfs:label "Property role" ; + rdfs:comment "The class of roles that a property (shape) may take for its focus nodes." ; + rdfs:subClassOf rdfs:Resource . + +dash:SPARQLConstructTemplate a rdfs:Class ; + rdfs:label "SPARQL CONSTRUCT template" ; + rdfs:comment "Encapsulates one or more SPARQL CONSTRUCT queries that can be parameterized. Parameters will become pre-bound variables in the queries." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLConstructExecutable . + +dash:SPARQLSelectTemplate a rdfs:Class ; + rdfs:label "SPARQL SELECT template" ; + rdfs:comment "Encapsulates a SPARQL SELECT query that can be parameterized. Parameters will become pre-bound variables in the query." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLSelectExecutable . + +dash:SPARQLUpdateSuggestionGenerator a rdfs:Class ; + rdfs:label "SPARQL UPDATE suggestion generator" ; + rdfs:comment """A SuggestionGenerator based on a SPARQL UPDATE query (sh:update), producing an instance of dash:GraphUpdate. The INSERTs become dash:addedTriple and the DELETEs become dash:deletedTriple. The WHERE clause operates on the data graph with the pre-bound variables $focusNode, $predicate and $value, as well as the other pre-bound variables for the parameters of the constraint. + +In many cases, there may be multiple possible suggestions to fix a problem. For example, with sh:maxLength there are many ways to slice a string. In those cases, the system will first iterate through the result variables from a SELECT query (sh:select) and apply these results as pre-bound variables into the UPDATE query.""" ; + rdfs:subClassOf dash:SuggestionGenerator, + sh:SPARQLSelectExecutable, + sh:SPARQLUpdateExecutable . + +dash:ScriptFunction a rdfs:Class, + sh:NodeShape ; + rdfs:label "Script function" ; + rdfs:comment """Script functions can be used from SPARQL queries and will be injected into the generated prefix object (in JavaScript, for ADS scripts). The dash:js will be inserted into a generated JavaScript function and therefore needs to use the return keyword to produce results. These JS snippets can access the parameter values based on the local name of the sh:Parameter's path. For example ex:value can be accessed using value. + +SPARQL use note: Since these functions may be used from any data graph and any shapes graph, they must not rely on any API apart from what's available in the shapes graph that holds the rdf:type triple of the function itself. In other words, at execution time from SPARQL, the ADS shapes graph will be the home graph of the function's declaration.""" ; + rdfs:subClassOf dash:Script, + sh:Function . + +dash:ShapeScript a rdfs:Class ; + rdfs:label "Shape script" ; + rdfs:comment "A shape script contains extra code that gets injected into the API for the associated node shape. In particular you can use this to define additional functions that operate on the current focus node (the this variable in JavaScript)." ; + rdfs:subClassOf dash:Script . + +dash:SuccessResult a rdfs:Class ; + rdfs:label "Success result" ; + rdfs:comment "A result representing a successfully validated constraint." ; + rdfs:subClassOf sh:AbstractResult . + +dash:SuccessTestCaseResult a rdfs:Class ; + rdfs:label "Success test case result" ; + rdfs:comment "Represents a successful run of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:Suggestion a rdfs:Class ; + rdfs:label "Suggestion" ; + dash:abstract true ; + rdfs:comment "Base class of suggestions that modify a graph to \"fix\" the source of a validation result." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionGenerator a rdfs:Class ; + rdfs:label "Suggestion generator" ; + dash:abstract true ; + rdfs:comment "Base class of objects that can generate suggestions (added or deleted triples) for a validation result of a given constraint component." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionResult a rdfs:Class ; + rdfs:label "Suggestion result" ; + rdfs:comment "Class of results that have been produced as suggestions, not through SHACL validation. How the actual results are produced is up to implementers. Each instance of this class should have values for sh:focusNode, sh:resultMessage, sh:resultSeverity (suggested default: sh:Info), and dash:suggestion to point at one or more suggestions." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestCaseResult a rdfs:Class ; + rdfs:label "Test case result" ; + dash:abstract true ; + rdfs:comment "Base class for results produced by running test cases." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestEnvironment a rdfs:Class ; + rdfs:label "Test environment" ; + dash:abstract true ; + rdfs:comment "Abstract base class for test environments, holding information on how to set up a test case." ; + rdfs:subClassOf rdfs:Resource . + +rdf:Alt a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Alt, + rdfs:Container . + +rdf:Bag a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Bag, + rdfs:Container . + +rdf:List a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:List, + rdfs:Resource . + +rdf:Property a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf rdf:Property, + rdfs:Resource . + +rdf:Seq a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Seq, + rdfs:Container . + +rdf:Statement a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Statement, + rdfs:Resource . + +rdf:XMLLiteral a rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Class a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Resource . + +rdfs:Container a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Container . + +rdfs:ContainerMembershipProperty a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Property, + rdfs:ContainerMembershipProperty, + rdfs:Resource . + +rdfs:Datatype a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Literal a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Literal, + rdfs:Resource . + +rdfs:Resource a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:subClassOf rdfs:Class . + +owl:Ontology a rdfs:Class, + rdfs:Resource . + +unl:UNL_Document a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Documents, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UNL_Scope a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Scopes, see : +http://www.unlweb.net/wiki/Scope + +The UNL representation is a hyper-graph, which means that it may consist of several interlinked or subordinate sub-graphs. These sub-graphs are represented as hyper-nodes and correspond roughly to the concept of dependent (subordinate) clauses, i.e., groups of words that consist of a subject (explicit or implied) and a predicate and which are embedded in a larger structure (the independent clause). They are used to define the boundaries between complex semantic entities being represented.""" ; + rdfs:subClassOf unl:UNL_Graph_Node . + +unl:UNL_Sentence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For mor information about UNL Sentences, see : +http://www.unlweb.net/wiki/UNL_sentence + +UNL sentences, or UNL expressions, are sentences of UNL. They are hypergraphs made out of nodes (Universal Words) interlinked by binary semantic Universal Relations and modified by Universal Attributes. UNL sentences have been the basic unit of representation inside the UNL framework.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UW_Lexeme a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf skos:Concept, + unl:UNLKB_Node, + unl:Universal_Word . + +unl:UW_Occurrence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf unl:UNL_Graph_Node, + unl:Universal_Word . + +unl:agt a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "agt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "agent"@en ; + skos:definition "A participant in an action or process that provokes a change of state or location."@en ; + skos:example """John killed Mary = agt(killed;John) +Mary was killed by John = agt(killed;John) +arrival of John = agt(arrival;John)"""@en . + +unl:aoj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "aoj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "object of an attribute"@en ; + skos:definition "The subject of an stative verb. Also used to express the predicative relation between the predicate and the subject."@en ; + skos:example """John has two daughters = aoj(have;John) +the book belongs to Mary = aoj(belong;book) +the book contains many pictures = aoj(contain;book) +John is sad = aoj(sad;John) +John looks sad = aoj(sad;John)"""@en . + +unl:ben a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "ben" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "beneficiary"@en ; + skos:definition "A participant who is advantaged or disadvantaged by an event."@en ; + skos:example """John works for Peter = ben(works;Peter) +John gave the book to Mary for Peter = ben(gave;Peter)"""@en . + +unl:man a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "man" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "manner"@en ; + skos:definition "Used to indicate how the action, experience or process of an event is carried out."@en ; + skos:example """John bought the car quickly = man(bought;quickly) +John bought the car in equal payments = man(bought;in equal payments) +John paid in cash = man(paid;in cash) +John wrote the letter in German = man(wrote;in German) +John wrote the letter in a bad manner = man(wrote;in a bad manner)"""@en . + +unl:mod a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "mod" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "modifier"@en ; + skos:definition "A general modification of an entity."@en ; + skos:example """a beautiful book = mod(book;beautiful) +an old book = mod(book;old) +a book with 10 pages = mod(book;with 10 pages) +a book in hard cover = mod(book;in hard cover) +a poem in iambic pentameter = mod(poem;in iambic pentamenter) +a man in an overcoat = mod(man;in an overcoat)"""@en . + +unl:obj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "obj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "patient"@en ; + skos:definition "A participant in an action or process undergoing a change of state or location."@en ; + skos:example """John killed Mary = obj(killed;Mary) +Mary died = obj(died;Mary) +The snow melts = obj(melts;snow)"""@en . + +unl:or a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "or" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "disjunction"@en ; + skos:definition "Used to indicate a disjunction between two entities."@en ; + skos:example """John or Mary = or(John;Mary) +either John or Mary = or(John;Mary)"""@en . + +unl:res a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "res" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "result or factitive"@en ; + skos:definition "A referent that results from an entity or event."@en ; + skos:example """The cook bake a cake = res(bake;cake) +They built a very nice building = res(built;a very nice building)"""@en . + +<exec_instance> a <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_generation>, + <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_net_extension>, + <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_preprocessing> . + +dash:ActionTestCase a dash:ShapeClass ; + rdfs:label "Action test case" ; + rdfs:comment """A test case that evaluates a dash:Action using provided input parameters. Requires exactly one value for dash:action and will operate on the test case's graph (with imports) as both data and shapes graph. + +Currently only supports read-only actions, allowing the comparison of actual results with the expected results.""" ; + rdfs:subClassOf dash:TestCase . + +dash:AllObjects a dash:AllObjectsTarget ; + rdfs:label "All objects" ; + rdfs:comment "A reusable instance of dash:AllObjectsTarget." . + +dash:AllSubjects a dash:AllSubjectsTarget ; + rdfs:label "All subjects" ; + rdfs:comment "A reusable instance of dash:AllSubjectsTarget." . + +dash:AutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Auto-complete editor" ; + rdfs:comment "An auto-complete field to enter the label of instances of a class. This is the fallback editor for any URI resource if no other editors are more suitable." . + +dash:BlankNodeViewer a dash:SingleViewer ; + rdfs:label "Blank node viewer" ; + rdfs:comment "A Viewer for blank nodes, rendering as the label of the blank node." . + +dash:BooleanSelectEditor a dash:SingleEditor ; + rdfs:label "Boolean select editor" ; + rdfs:comment """An editor for boolean literals, rendering as a select box with values true and false. + +Also displays the current value (such as "1"^^xsd:boolean), but only allows to switch to true or false.""" . + +dash:ClosedByTypesConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Closed by types constraint component" ; + rdfs:comment "A constraint component that can be used to declare that focus nodes are \"closed\" based on their rdf:types, meaning that focus nodes may only have values for the properties that are explicitly enumerated via sh:property/sh:path in property constraints at their rdf:types and the superclasses of those. This assumes that the type classes are also shapes." ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosedByTypesNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Property is not among those permitted for any of the types" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Property {?path} is not among those permitted for any of the types" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this (?predicate AS ?path) ?value +WHERE { + FILTER ($closedByTypes) . + $this ?predicate ?value . + FILTER (?predicate != rdf:type) . + FILTER NOT EXISTS { + $this rdf:type ?type . + ?type rdfs:subClassOf* ?class . + GRAPH $shapesGraph { + ?class sh:property/sh:path ?predicate . + } + } +}""" ] ; + sh:parameter dash:ClosedByTypesConstraintComponent-closedByTypes . + +dash:CoExistsWithConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Co-exists-with constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that if the property path has any value then the given property must also have a value, and vice versa." ; + sh:message "Values must co-exist with values of {$coExistsWith}" ; + sh:parameter dash:CoExistsWithConstraintComponent-coExistsWith ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateCoExistsWith" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + { + FILTER (EXISTS { $this $PATH ?any } && NOT EXISTS { $this $coExistsWith ?any }) + } + UNION + { + FILTER (NOT EXISTS { $this $PATH ?any } && EXISTS { $this $coExistsWith ?any }) + } +}""" ] . + +dash:DateOrDateTime a rdf:List ; + rdfs:label "Date or date time" ; + rdf:first [ sh:datatype xsd:date ] ; + rdf:rest ( [ sh:datatype xsd:dateTime ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:date or xsd:dateTime." . + +dash:DatePickerEditor a dash:SingleEditor ; + rdfs:label "Date picker editor" ; + rdfs:comment "An editor for xsd:date literals, offering a calendar-like date picker." . + +dash:DateTimePickerEditor a dash:SingleEditor ; + rdfs:label "Date time picker editor" ; + rdfs:comment "An editor for xsd:dateTime literals, offering a calendar-like date picker and a time selector." . + +dash:DepictionRole a dash:PropertyRole ; + rdfs:label "Depiction" ; + rdfs:comment "Depiction properties provide images representing the focus nodes. Typical examples may be a photo of an animal or the map of a country." . + +dash:DescriptionRole a dash:PropertyRole ; + rdfs:label "Description" ; + rdfs:comment "Description properties should produce text literals that may be used as an introduction/summary of what a focus node does." . + +dash:DetailsEditor a dash:SingleEditor ; + rdfs:label "Details editor" ; + rdfs:comment "An editor for non-literal values, typically displaying a nested form where the values of the linked resource can be edited directly on the \"parent\" form. Implementations that do not support this (yet) could fall back to an auto-complete widget." . + +dash:DetailsViewer a dash:SingleViewer ; + rdfs:label "Details viewer" ; + rdfs:comment "A Viewer for resources that shows the details of the value using its default view shape as a nested form-like display." . + +dash:EnumSelectEditor a dash:SingleEditor ; + rdfs:label "Enum select editor" ; + rdfs:comment "A drop-down editor for enumerated values (typically based on sh:in lists)." . + +dash:FunctionTestCase a dash:ShapeClass ; + rdfs:label "Function test case" ; + rdfs:comment "A test case that verifies that a given SPARQL expression produces a given, expected result." ; + rdfs:subClassOf dash:TestCase . + +dash:GraphStoreTestCase a dash:ShapeClass ; + rdfs:label "Graph store test case" ; + rdfs:comment "A test case that can be used to verify that an RDF file could be loaded (from a file) and that the resulting RDF graph is equivalent to a given TTL file." ; + rdfs:subClassOf dash:TestCase . + +dash:HTMLOrStringOrLangString a rdf:List ; + rdfs:label "HTML or string or langString" ; + rdf:first [ sh:datatype rdf:HTML ] ; + rdf:rest ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either rdf:HTML, xsd:string or rdf:langString (in that order of preference)." . + +dash:HTMLViewer a dash:SingleViewer ; + rdfs:label "HTML viewer" ; + rdfs:comment "A Viewer for HTML encoded text from rdf:HTML literals, rendering as parsed HTML DOM elements. Also displays the language if the HTML has a lang attribute on its root DOM element." . + +dash:HasValueInConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value in constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be a member of a given list of nodes." ; + sh:message "At least one of the values must be in {$hasValueIn}" ; + sh:parameter dash:HasValueInConstraintComponent-hasValueIn ; + sh:propertyValidator [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + GRAPH $shapesGraph { + $hasValueIn rdf:rest*/rdf:first ?value . + } + } +}""" ] . + +dash:HasValueTarget a sh:SPARQLTargetType ; + rdfs:label "Has Value target" ; + rdfs:comment "A target type for all subjects where a given predicate has a certain object value." ; + rdfs:subClassOf sh:Target ; + sh:labelTemplate "All subjects where {$predicate} has value {$object}" ; + sh:parameter [ a sh:Parameter ; + sh:description "The value that is expected to be present." ; + sh:name "object" ; + sh:path dash:object ], + [ a sh:Parameter ; + sh:description "The predicate property." ; + sh:name "predicate" ; + sh:nodeKind sh:IRI ; + sh:path dash:predicate ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this $predicate $object . +}""" . + +dash:HasValueWithClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value with class constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be an instance of a given class." ; + sh:message "At least one of the values must be an instance of class {$hasValueWithClass}" ; + sh:parameter dash:HasValueWithClassConstraintComponent-hasValueWithClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueWithClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + ?value a ?type . + ?type rdfs:subClassOf* $hasValueWithClass . + } +}""" ] . + +dash:HyperlinkViewer a dash:SingleViewer ; + rdfs:label "Hyperlink viewer" ; + rdfs:comment """A Viewer for literals, rendering as a hyperlink to a URL. + +For literals it assumes the lexical form is the URL. + +This is often used as default viewer for xsd:anyURI literals. Unsupported for blank nodes.""" . + +dash:IDRole a dash:PropertyRole ; + rdfs:label "ID" ; + rdfs:comment "ID properties are short strings or other literals that identify the focus node among siblings. Examples may include social security numbers." . + +dash:IconRole a dash:PropertyRole ; + rdfs:label "Icon" ; + rdfs:comment """Icon properties produce images that are typically small and almost square-shaped, and that may be displayed in the upper left corner of a focus node's display. Values should be xsd:string or xsd:anyURI literals or IRI nodes pointing at URLs. Those URLs should ideally be vector graphics such as .svg files. + +Instances of the same class often have the same icon, and this icon may be computed using a sh:values rule or as sh:defaultValue.\r +\r +If the value is a relative URL then those should be resolved against the server that delivered the surrounding page.""" . + +dash:ImageViewer a dash:SingleViewer ; + rdfs:label "Image viewer" ; + rdfs:comment "A Viewer for URI values that are recognized as images by a browser, rendering as an image." . + +dash:IndexedConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Indexed constraint component" ; + rdfs:comment "A constraint component that can be used to mark property shapes to be indexed, meaning that each of its value nodes must carry a dash:index from 0 to N." ; + sh:parameter dash:IndexedConstraintComponent-indexed . + +dash:InferencingTestCase a dash:ShapeClass ; + rdfs:label "Inferencing test case" ; + rdfs:comment "A test case to verify whether an inferencing engine is producing identical results to those stored as expected results." ; + rdfs:subClassOf dash:TestCase . + +dash:InstancesSelectEditor a dash:SingleEditor ; + rdfs:label "Instances select editor" ; + rdfs:comment "A drop-down editor for all instances of the target class (based on sh:class of the property)." . + +dash:JSTestCase a dash:ShapeClass ; + rdfs:label "SHACL-JS test case" ; + rdfs:comment "A test case that calls a given SHACL-JS JavaScript function like a sh:JSFunction and compares its result with the dash:expectedResult." ; + rdfs:subClassOf dash:TestCase, + sh:JSFunction . + +dash:KeyInfoRole a dash:PropertyRole ; + rdfs:label "Key info" ; + rdfs:comment "The Key info role may be assigned to properties that are likely of special interest to a reader, so that they should appear whenever a summary of a focus node is shown." . + +dash:LabelRole a dash:PropertyRole ; + rdfs:label "Label" ; + rdfs:comment "Properties with this role produce strings that may serve as display label for the focus nodes. Labels should be either plain string literals or strings with a language tag. The values should also be single-line." . + +dash:LabelViewer a dash:SingleViewer ; + rdfs:label "Label viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI based on the display label of the resource. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:LangStringViewer a dash:SingleViewer ; + rdfs:label "LangString viewer" ; + rdfs:comment "A Viewer for literals with a language tag, rendering as the text plus a language indicator." . + +dash:LiteralViewer a dash:SingleViewer ; + rdfs:label "Literal viewer" ; + rdfs:comment "A simple viewer for literals, rendering the lexical form of the value." . + +dash:ModifyAction a dash:ShapeClass ; + rdfs:label "Modify action" ; + rdfs:comment "An action typically showing up in a Modify section of a selected resource. May make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:MultiEditor a dash:ShapeClass ; + rdfs:label "Multi editor" ; + rdfs:comment "An editor for multiple/all value nodes at once." ; + rdfs:subClassOf dash:Editor . + +dash:NodeExpressionViewer a dash:SingleViewer ; + rdfs:label "Node expression viewer" ; + rdfs:comment "A viewer for SHACL Node Expressions."^^rdf:HTML . + +dash:NonRecursiveConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Non-recursive constraint component" ; + rdfs:comment "Used to state that a property or path must not point back to itself." ; + sh:message "Points back at itself (recursively)" ; + sh:parameter dash:NonRecursiveConstraintComponent-nonRecursive ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateNonRecursiveProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ($this AS ?value) +WHERE { + { + FILTER (?nonRecursive) + } + $this $PATH $this . +}""" ] . + +dash:None a sh:NodeShape ; + rdfs:label "None" ; + rdfs:comment "A Shape that is no node can conform to." ; + sh:in () . + +dash:ParameterConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Parameter constraint component"@en ; + rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given Parameter."@en ; + sh:parameter dash:ParameterConstraintComponent-parameter . + +dash:PrimaryKeyConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Primary key constraint component" ; + dash:localConstraint true ; + rdfs:comment "Enforces a constraint that the given property (sh:path) serves as primary key for all resources in the target of the shape. If a property has been declared to be the primary key then each resource must have exactly one value for that property. Furthermore, the URIs of those resources must start with a given string (dash:uriStart), followed by the URL-encoded primary key value. For example if dash:uriStart is \"http://example.org/country-\" and the primary key for an instance is \"de\" then the URI must be \"http://example.org/country-de\". Finally, as a result of the URI policy, there can not be any other resource with the same value under the same primary key policy." ; + sh:labelTemplate "The property {?predicate} is the primary key and URIs start with {?uriStart}" ; + sh:message "Violation of primary key constraint" ; + sh:parameter dash:PrimaryKeyConstraintComponent-uriStart ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validatePrimaryKeyProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this +WHERE { + FILTER ( + # Must have a value for the primary key + NOT EXISTS { ?this $PATH ?any } + || + # Must have no more than one value for the primary key + EXISTS { + ?this $PATH ?value1 . + ?this $PATH ?value2 . + FILTER (?value1 != ?value2) . + } + || + # The value of the primary key must align with the derived URI + EXISTS { + { + ?this $PATH ?value . + FILTER NOT EXISTS { ?this $PATH ?value2 . FILTER (?value != ?value2) } + } + BIND (CONCAT($uriStart, ENCODE_FOR_URI(str(?value))) AS ?uri) . + FILTER (str(?this) != ?uri) . + } + ) +}""" ] . + +dash:QueryTestCase a dash:ShapeClass ; + rdfs:label "Query test case" ; + rdfs:comment "A test case running a given SPARQL SELECT query and comparing its results with those stored as JSON Result Set in the expected result property." ; + rdfs:subClassOf dash:TestCase, + sh:SPARQLSelectExecutable . + +dash:ReifiableByConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Reifiable-by constraint component" ; + sh:labelTemplate "Reifiable by {$reifiableBy}" ; + sh:parameter dash:ReifiableByConstraintComponent-reifiableBy . + +dash:RichTextEditor a dash:SingleEditor ; + rdfs:label "Rich text editor" ; + rdfs:comment "A rich text editor to enter the lexical value of a literal and a drop down to select language. The selected language is stored in the HTML lang attribute of the root node in the HTML DOM tree." . + +dash:RootClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Root class constraint component" ; + rdfs:comment "A constraint component defining the parameter dash:rootClass, which restricts the values to be either the root class itself or one of its subclasses. This is typically used in conjunction with properties that have rdfs:Class as their type." ; + sh:labelTemplate "Root class {$rootClass}" ; + sh:message "Value must be subclass of {$rootClass}" ; + sh:parameter dash:RootClassConstraintComponent-rootClass ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateRootClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasRootClass . + +dash:ScriptConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Script constraint component" ; + sh:parameter dash:ScriptConstraintComponent-scriptConstraint . + +dash:ScriptSuggestionGenerator a dash:ShapeClass ; + rdfs:label "Script suggestion generator" ; + rdfs:comment """A Suggestion Generator that is backed by an Active Data Shapes script. The script needs to return a JSON object or an array of JSON objects if it shall generate multiple suggestions. It may also return null to indicate that nothing was suggested. Note that the whole script is evaluated as a (JavaScript) expression, and those will use the last value as result. So simply putting an object at the end of your script should do. Alternatively, define the bulk of the operation as a function and simply call that function in the script. + +Each response object can have the following fields: + +{ + message: "The human readable message", // Defaults to the rdfs:label(s) of the suggestion generator + add: [ // An array of triples to add, each triple as an array with three nodes + [ subject, predicate, object ], + [ ... ] + ], + delete: [ + ... like add, for the triples to delete + ] +} + +Suggestions with neither added nor deleted triples will be discarded. + +At execution time, the script operates on the data graph as the active graph, with the following pre-bound variables: +- focusNode: the NamedNode that is the sh:focusNode of the validation result +- predicate: the NamedNode representing the predicate of the validation result, assuming sh:resultPath is a URI +- value: the value node from the validation result's sh:value, cast into the most suitable JS object +- the other pre-bound variables for the parameters of the constraint, e.g. in a sh:maxCount constraint it would be maxCount + +The script will be executed in read-only mode, i.e. it cannot modify the graph. + +Example with dash:js: + +({ + message: `Copy labels into ${graph.localName(predicate)}`, + add: focusNode.values(rdfs.label).map(label => + [ focusNode, predicate, label ] + ) +})""" ; + rdfs:subClassOf dash:Script, + dash:SuggestionGenerator . + +dash:ScriptTestCase a dash:ShapeClass ; + rdfs:label "Script test case" ; + rdfs:comment """A test case that evaluates a script. Requires exactly one value for dash:js and will operate on the test case's graph (with imports) as both data and shapes graph. + +Supports read-only scripts only at this stage.""" ; + rdfs:subClassOf dash:Script, + dash:TestCase . + +dash:ScriptValidator a dash:ShapeClass ; + rdfs:label "Script validator" ; + rdfs:comment """A SHACL validator based on an Active Data Shapes script. + +See the comment at dash:ScriptConstraint for the basic evaluation approach. Note that in addition to focusNode and value/values, the script can access pre-bound variables for each declared argument of the constraint component.""" ; + rdfs:subClassOf dash:Script, + sh:Validator . + +dash:SingleLineConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Single line constraint component" ; + rdfs:comment """A constraint component that can be used to declare that all values that are literals must have a lexical form that contains no line breaks ('\\n' or '\\r'). + +User interfaces may use the dash:singleLine flag to prefer a text field over a (multi-line) text area.""" ; + sh:message "Must not contain line breaks." ; + sh:parameter dash:SingleLineConstraintComponent-singleLine ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSingleLine" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER (!$singleLine || !isLiteral($value) || (!contains(str($value), '\\n') && !contains(str($value), '\\r'))) +}""" ; + sh:prefixes <http://datashapes.org/dash> ] . + +dash:StemConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Stem constraint component"@en ; + dash:staticConstraint true ; + rdfs:comment "A constraint component that can be used to verify that every value node is an IRI and the IRI starts with a given string value."@en ; + sh:labelTemplate "Value needs to have stem {$stem}" ; + sh:message "Value does not have stem {$stem}" ; + sh:parameter dash:StemConstraintComponent-stem ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateStem" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasStem . + +dash:StringOrLangStringOrHTML a rdf:List ; + rdfs:label "string or langString or HTML" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] [ sh:datatype rdf:HTML ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string, rdf:langString or rdf:HTML (in that order of preference)." . + +dash:SubClassEditor a dash:SingleEditor ; + rdfs:label "Sub-Class editor" ; + rdfs:comment "An editor for properties that declare a dash:rootClass. The editor allows selecting either the class itself or one of its subclasses." . + +dash:SubSetOfConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Sub set of constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to state that the set of value nodes must be a subset of the value of a given property." ; + sh:message "Must be one of the values of {$subSetOf}" ; + sh:parameter dash:SubSetOfConstraintComponent-subSetOf ; + sh:propertyValidator [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + $this $subSetOf $value . +}""" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSubSetOf" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +dash:SymmetricConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Symmetric constraint component" ; + rdfs:comment "A contraint component for property shapes to validate that a property is symmetric. For symmetric properties, if A relates to B then B must relate to A." ; + sh:message "Symmetric value expected" ; + sh:parameter dash:SymmetricConstraintComponent-symmetric ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateSymmetric" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this ?value { + FILTER ($symmetric) . + $this $PATH ?value . + FILTER NOT EXISTS { + ?value $PATH $this . + } +}""" ] . + +dash:TextAreaEditor a dash:SingleEditor ; + rdfs:label "Text area editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal." . + +dash:TextAreaWithLangEditor a dash:SingleEditor ; + rdfs:label "Text area with lang editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal and a drop down to select a language." . + +dash:TextFieldEditor a dash:SingleEditor ; + rdfs:label "Text field editor" ; + rdfs:comment """A simple input field to enter the value of a literal, without the ability to change language or datatype. + +This is the fallback editor for any literal if no other editors are more suitable.""" . + +dash:TextFieldWithLangEditor a dash:SingleEditor ; + rdfs:label "Text field with lang editor" ; + rdfs:comment "A single-line input field to enter the value of a literal and a drop down to select language, which is mandatory unless xsd:string is among the permissible datatypes." . + +dash:URIEditor a dash:SingleEditor ; + rdfs:label "URI editor" ; + rdfs:comment "An input field to enter the URI of a resource, e.g. rdfs:seeAlso links or images." . + +dash:URIViewer a dash:SingleViewer ; + rdfs:label "URI viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:UniqueValueForClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Unique value for class constraint component" ; + dash:propertySuggestionGenerator tosh:DeleteTripleSuggestionGenerator ; + rdfs:comment "A constraint component that can be used to state that the values of a property must be unique for all instances of a given class (and its subclasses)." ; + sh:labelTemplate "Values must be unique among all instances of {?uniqueValueForClass}" ; + sh:parameter dash:UniqueValueForClassConstraintComponent-uniqueValueForClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueValueForClass" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value {?value} must be unique but is also used by {?other}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Value {?value} must be unique but is also used by {?other}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ?value ?other +WHERE { + { + $this $PATH ?value . + ?other $PATH ?value . + FILTER (?other != $this) . + } + ?other a ?type . + ?type rdfs:subClassOf* $uniqueValueForClass . +}""" ] . + +dash:UntrustedHTMLViewer a dash:SingleViewer ; + rdfs:label "Untrusted HTML viewer" ; + rdfs:comment "A Viewer for HTML content from untrusted sources. This viewer will sanitize the HTML before rendering. Any a, button, checkbox, form, hidden, input, img, script, select, style and textarea tags and class and style attributes will be removed." . + +dash:ValueTableViewer a dash:MultiViewer ; + rdfs:label "Value table viewer" ; + rdfs:comment "A viewer that renders all values of a given property as a table, with one value per row, and the columns defined by the shape that is the sh:node or sh:class of the property." . + +dash:abstract a rdf:Property ; + rdfs:label "abstract" ; + rdfs:comment "Indicates that a class is \"abstract\" and cannot be used in asserted rdf:type triples. Only non-abstract subclasses of abstract classes should be instantiated directly." ; + rdfs:domain rdfs:Class ; + rdfs:range xsd:boolean . + +dash:actionGroup a rdf:Property ; + rdfs:label "action group" ; + rdfs:comment "Links an Action with the ActionGroup that it should be arranged in." ; + rdfs:domain dash:Action ; + rdfs:range dash:ActionGroup . + +dash:actionIconClass a rdf:Property ; + rdfs:label "action icon class" ; + rdfs:comment "The (CSS) class of an Action for display purposes alongside the label." ; + rdfs:domain dash:Action ; + rdfs:range xsd:string . + +dash:addedTriple a rdf:Property ; + rdfs:label "added triple" ; + rdfs:comment "May link a dash:GraphUpdate with one or more triples (represented as instances of rdf:Statement) that should be added to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:all a rdfs:Resource ; + rdfs:label "all" ; + rdfs:comment "Represents all users/roles, for example as a possible value of the default view for role property." . + +dash:applicableToClass a rdf:Property ; + rdfs:label "applicable to class" ; + rdfs:comment "Can be used to state that a shape is applicable to instances of a given class. This is a softer statement than \"target class\": a target means that all instances of the class must conform to the shape. Being applicable to simply means that the shape may apply to (some) instances of the class. This information can be used by algorithms or humans." ; + rdfs:domain sh:Shape ; + rdfs:range rdfs:Class . + +dash:cachable a rdf:Property ; + rdfs:label "cachable" ; + rdfs:comment "If set to true then the results of the SHACL function can be cached in between invocations with the same arguments. In other words, they are stateless and do not depend on triples in any graph, or the current time stamp etc." ; + rdfs:domain sh:Function ; + rdfs:range xsd:boolean . + +dash:composite a rdf:Property ; + rdfs:label "composite" ; + rdfs:comment "Can be used to indicate that a property/path represented by a property constraint represents a composite relationship. In a composite relationship, the life cycle of a \"child\" object (value of the property/path) depends on the \"parent\" object (focus node). If the parent gets deleted, then the child objects should be deleted, too. Tools may use dash:composite (if set to true) to implement cascading delete operations." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:defaultLang a rdf:Property ; + rdfs:label "default language" ; + rdfs:comment "Can be used to annotate a graph (usually the owl:Ontology) with the default language that tools should suggest for new literal values. For example, predominantly English graphs should have \"en\" as default language." ; + rdfs:domain owl:Ontology ; + rdfs:range xsd:string . + +dash:defaultViewForRole a rdf:Property ; + rdfs:label "default view for role" ; + rdfs:comment "Links a node shape with the roles for which it shall be used as default view. User interfaces can use these values to select how to present a given RDF resource. The values of this property are URIs representing a group of users or agents. There is a dedicated URI dash:all representing all users." ; + rdfs:domain sh:NodeShape . + +dash:deletedTriple a rdf:Property ; + rdfs:label "deleted triple" ; + rdfs:comment "May link a dash:GraphUpdate result with one or more triples (represented as instances of rdf:Statement) that should be deleted to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:dependencyPredicate a rdf:Property ; + rdfs:label "dependency predicate" ; + rdfs:comment "Can be used in dash:js node expressions to enumerate the predicates that the computation of the values may depend on. This can be used by clients to determine whether an edit requires re-computation of values on a form or elsewhere. For example, if the dash:js is something like \"focusNode.firstName + focusNode.lastName\" then the dependency predicates should be ex:firstName and ex:lastName." ; + rdfs:range rdf:Property . + +dash:detailsEndpoint a rdf:Property ; + rdfs:label "details endpoint" ; + rdfs:comment """Can be used to link a SHACL property shape with the URL of a SPARQL endpoint that may contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to values from an external graph when the user wants to retrieve more information about a value. + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information. One implementation strategy would be to periodically fetch the values specified by the sh:node or sh:class shape associated with the property, using the property shapes in that shape, and add the resulting triples into the main query graph. + +An example value is "https://query.wikidata.org/sparql".""" . + +dash:detailsGraph a rdf:Property ; + rdfs:label "details graph" ; + rdfs:comment """Can be used to link a SHACL property shape with a SHACL node expression that produces the URIs of one or more graphs that contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to another data graph when the user wants to retrieve more information about a value. + +The node expressions are evaluated with the focus node as input. (It is unclear whether there are also cases where the result may be different for each specific value, in which case the node expression would need a second input argument). + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information.""" . + +dash:editor a rdf:Property ; + rdfs:label "editor" ; + rdfs:comment "Can be used to link a property shape with an editor, to state a preferred editing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Editor . + +dash:excludedPrefix a rdf:Property ; + rdfs:label "excluded prefix" ; + rdfs:comment "Specifies a prefix that shall be excluded from the Script code generation." ; + rdfs:range xsd:string . + +dash:expectedResult a rdf:Property ; + rdfs:label "expected result" ; + rdfs:comment "The expected result(s) of a test case. The value range of this property is different for each kind of test cases." ; + rdfs:domain dash:TestCase . + +dash:expectedResultIsJSON a rdf:Property ; + rdfs:label "expected result is JSON" ; + rdfs:comment "A flag to indicate that the expected result represents a JSON string. If set to true, then tests would compare JSON structures (regardless of whitespaces) instead of actual syntax." ; + rdfs:range xsd:boolean . + +dash:expectedResultIsTTL a rdf:Property ; + rdfs:label "expected result is Turtle" ; + rdfs:comment "A flag to indicate that the expected result represents an RDF graph encoded as a Turtle file. If set to true, then tests would compare graphs instead of actual syntax." ; + rdfs:domain dash:TestCase ; + rdfs:range xsd:boolean . + +dash:fixed a rdf:Property ; + rdfs:label "fixed" ; + rdfs:comment "Can be used to mark that certain validation results have already been fixed." ; + rdfs:domain sh:ValidationResult ; + rdfs:range xsd:boolean . + +dash:height a rdf:Property ; + rdfs:label "height" ; + rdfs:comment "The height." ; + rdfs:range xsd:integer . + +dash:hidden a rdf:Property ; + rdfs:label "hidden" ; + rdfs:comment "Properties marked as hidden do not appear in user interfaces, yet remain part of the shape for other purposes such as validation and scripting or GraphQL schema generation." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:includedExecutionPlatform a rdf:Property ; + rdfs:label "included execution platform" ; + rdfs:comment "Can be used to state that one (subject) execution platform includes all features of another platform (object)." ; + rdfs:domain dash:ExecutionPlatform ; + rdfs:range dash:ExecutionPlatform . + +dash:index a rdf:Property ; + rdfs:label "index" ; + rdfs:range xsd:integer . + +dash:isDeactivated a sh:SPARQLFunction ; + rdfs:label "is deactivated" ; + rdfs:comment "Checks whether a given shape or constraint has been marked as \"deactivated\" using sh:deactivated." ; + sh:ask """ASK { + ?constraintOrShape sh:deactivated true . +}""" ; + sh:parameter [ a sh:Parameter ; + sh:description "The sh:Constraint or sh:Shape to test." ; + sh:name "constraint or shape" ; + sh:path dash:constraintOrShape ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindBlankNode a sh:SPARQLFunction ; + rdfs:label "is NodeKind BlankNode" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes BlankNodes." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindIRI a sh:SPARQLFunction ; + rdfs:label "is NodeKind IRI" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes IRIs." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindLiteral a sh:SPARQLFunction ; + rdfs:label "is NodeKind Literal" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes Literals." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isSubClassOf a sh:SPARQLFunction ; + rdfs:label "is subclass of" ; + rdfs:comment "Returns true if a given class (first argument) is a subclass of a given other class (second argument), or identical to that class. This is equivalent to an rdfs:subClassOf* check." ; + sh:ask """ASK { + $subclass rdfs:subClassOf* $superclass . +}""" ; + sh:parameter dash:isSubClassOf-subclass, + dash:isSubClassOf-superclass ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:js a rdf:Property ; + rdfs:label "JavaScript source code" ; + rdfs:comment "The JavaScript source code of a Script." ; + rdfs:domain dash:Script ; + rdfs:range xsd:string . + +dash:localConstraint a rdf:Property ; + rdfs:label "local constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the shape definitions and the direct property values of the focus node mentioned in the property constraints. Examples of this include sh:minCount and sh:hasValue. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server, assuming the client has downloaded a complete snapshot of the resource. + +Any component marked with dash:staticConstraint is also a dash:localConstraint.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:localValues a rdf:Property ; + rdfs:label "local values" ; + rdfs:comment "If set to true at a property shape then any sh:values rules of this property will be ignored when 'all inferences' are computed. This is useful for property values that shall only be computed for individual focus nodes (e.g. when a user visits a resource) but not for large inference runs." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:mimeTypes a rdf:Property ; + rdfs:label "mime types" ; + rdfs:comment """For file-typed properties, this can be used to specify the expected/allowed mime types of its values. This can be used, for example, to limit file input boxes or file selectors. If multiple values are allowed then they need to be separated by commas. + +Example values are listed at https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types""" ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:string . + +dash:onAllValues a rdf:Property ; + rdfs:label "on all values" ; + rdfs:comment "If set to true for a ScriptConstraint or ScriptValidator, then the associated script will receive all value nodes at once, as a value of the variable values. By default (or false), the script is called for each value node individually." ; + rdfs:range xsd:boolean . + +dash:propertySuggestionGenerator a rdf:Property ; + rdfs:label "property suggestion generator" ; + rdfs:comment "Links the constraint component with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by a property constraint." ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range dash:SuggestionGenerator . + +dash:readOnly a rdf:Property ; + rdfs:label "read only" ; + rdfs:comment "Used as a hint for user interfaces that values of the associated property should not be editable. The values of this may be the boolean literals true or false or, more generally, a SHACL node expression that must evaluate to true or false." ; + rdfs:domain sh:PropertyShape . + +dash:requiredExecutionPlatform a rdf:Property ; + rdfs:label "required execution platform" ; + rdfs:comment "Links a SPARQL executable with the platforms that it can be executed on. This can be used by a SHACL implementation to determine whether a constraint validator or rule shall be ignored based on the current platform. For example, if a SPARQL query uses a function or magic property that is only available in TopBraid then a non-TopBraid platform can ignore the constraint (or simply always return no validation results). If this property has no value then the assumption is that the execution will succeed. As soon as one value exists, the assumption is that the engine supports at least one of the given platforms." ; + rdfs:domain sh:SPARQLExecutable ; + rdfs:range dash:ExecutionPlatform . + +dash:resourceAction a rdf:Property ; + rdfs:label "resource action" ; + rdfs:comment "Links a class with the Resource Actions that can be applied to instances of that class." ; + rdfs:domain rdfs:Class ; + rdfs:range dash:ResourceAction . + +dash:shape a rdf:Property ; + rdfs:label "shape" ; + rdfs:comment "States that a subject resource has a given shape. This property can, for example, be used to capture results of SHACL validation on static data." ; + rdfs:range sh:Shape . + +dash:shapeScript a rdf:Property ; + rdfs:label "shape script" ; + rdfs:domain sh:NodeShape . + +dash:staticConstraint a rdf:Property ; + rdfs:label "static constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the parameters. Examples of this include sh:datatype or sh:nodeKind, where no further triples need to be queried to determine the result. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:suggestion a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a result with one or more suggestions on how to address or improve the underlying issue." ; + rdfs:domain sh:AbstractResult ; + rdfs:range dash:Suggestion . + +dash:suggestionConfidence a rdf:Property ; + rdfs:label "suggestion confidence" ; + rdfs:comment "An optional confidence between 0% and 100%. Suggestions with 100% confidence are strongly recommended. Can be used to sort recommended updates." ; + rdfs:domain dash:Suggestion ; + rdfs:range xsd:decimal . + +dash:suggestionGenerator a rdf:Property ; + rdfs:label "suggestion generator" ; + rdfs:comment "Links a sh:SPARQLConstraint or sh:JSConstraint with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by the constraint." ; + rdfs:range dash:SuggestionGenerator . + +dash:suggestionGroup a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a suggestion with the group identifier to which it belongs. By default this is a link to the dash:SuggestionGenerator, but in principle this could be any value." ; + rdfs:domain dash:Suggestion . + +dash:toString a sh:JSFunction, + sh:SPARQLFunction ; + rdfs:label "to string" ; + dash:cachable true ; + rdfs:comment "Returns a literal with datatype xsd:string that has the input value as its string. If the input value is an (URI) resource then its URI will be used." ; + sh:jsFunctionName "dash_toString" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "Convert {$arg} to xsd:string" ; + sh:parameter [ a sh:Parameter ; + sh:description "The input value." ; + sh:name "arg" ; + sh:nodeKind sh:IRIOrLiteral ; + sh:path dash:arg ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:string ; + sh:select """SELECT (xsd:string($arg) AS ?result) +WHERE { +}""" . + +dash:uriTemplate a sh:SPARQLFunction ; + rdfs:label "URI template" ; + dash:cachable true ; + rdfs:comment """Inserts a given value into a given URI template, producing a new xsd:anyURI literal. + +In the future this should support RFC 6570 but for now it is limited to simple {...} patterns.""" ; + sh:parameter [ a sh:Parameter ; + sh:datatype xsd:string ; + sh:description "The URI template, e.g. \"http://example.org/{symbol}\"." ; + sh:name "template" ; + sh:order 0 ; + sh:path dash:template ], + [ a sh:Parameter ; + sh:description "The literal value to insert into the template. Will use the URI-encoded string of the lexical form (for now)." ; + sh:name "value" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dash:value ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:anyURI ; + sh:select """SELECT ?result +WHERE { + BIND (xsd:anyURI(REPLACE(?template, "\\\\{[a-zA-Z]+\\\\}", $value)) AS ?result) +}""" . + +dash:validateShapes a rdf:Property ; + rdfs:label "validate shapes" ; + rdfs:comment "True to also validate the shapes itself (i.e. parameter declarations)." ; + rdfs:domain dash:GraphValidationTestCase ; + rdfs:range xsd:boolean . + +dash:valueCount a sh:SPARQLFunction ; + rdfs:label "value count" ; + rdfs:comment "Computes the number of objects for a given subject/predicate combination." ; + sh:parameter [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The predicate to get the number of objects of." ; + sh:name "predicate" ; + sh:order 1 ; + sh:path dash:predicate ], + [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The subject to get the number of objects of." ; + sh:name "subject" ; + sh:order 0 ; + sh:path dash:subject ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:integer ; + sh:select """ + SELECT (COUNT(?object) AS ?result) + WHERE { + $subject $predicate ?object . + } +""" . + +dash:viewer a rdf:Property ; + rdfs:label "viewer" ; + rdfs:comment "Can be used to link a property shape with a viewer, to state a preferred viewing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Viewer . + +dash:width a rdf:Property ; + rdfs:label "width" ; + rdfs:comment "The width." ; + rdfs:range xsd:integer . + +dash:x a rdf:Property ; + rdfs:label "x" ; + rdfs:comment "The x position." ; + rdfs:range xsd:integer . + +dash:y a rdf:Property ; + rdfs:label "y" ; + rdfs:comment "The y position." ; + rdfs:range xsd:integer . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100#ontology> a owl:Ontology ; + owl:imports default3:ontology, + <https://unl.tetras-libre.fr/rdf/schema> . + +rdf:type a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Class . + +rdfs:comment a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:label a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:range a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:subClassOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdfs:Class ; + rdfs:range rdfs:Class . + +rdfs:subPropertyOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdf:Property . + +sh:AndConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateAnd" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:ClassConstraintComponent sh:labelTemplate "Value needs to have class {$class}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasClass . + +sh:ClosedConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Closed shape: only the enumerated properties can be used" ; + sh:nodeValidator [ a sh:SPARQLSelectValidator ; + sh:message "Predicate {?path} is not allowed (closed shape)" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this (?predicate AS ?path) ?value + WHERE { + { + FILTER ($closed) . + } + $this ?predicate ?value . + FILTER (NOT EXISTS { + GRAPH $shapesGraph { + $currentShape sh:property/sh:path ?predicate . + } + } && (!bound($ignoredProperties) || NOT EXISTS { + GRAPH $shapesGraph { + $ignoredProperties rdf:rest*/rdf:first ?predicate . + } + })) + } +""" ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosed" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Predicate is not allowed (closed shape)" ] . + +sh:DatatypeConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Values must have datatype {$datatype}" ; + sh:message "Value does not have datatype {$datatype}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDatatype" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:DisjointConstraintComponent dash:localConstraint true ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDisjoint" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value node must not also be one of the values of {$disjoint}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ + ASK { + FILTER NOT EXISTS { + $this $disjoint $value . + } + } + """ ; + sh:message "Property must not share any values with {$disjoint}" ; + sh:prefixes <http://datashapes.org/dash> ] . + +sh:EqualsConstraintComponent dash:localConstraint true ; + sh:message "Must have same values as {$equals}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsNode" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + FILTER NOT EXISTS { $this $equals $this } + BIND ($this AS ?value) . + } + UNION + { + $this $equals ?value . + FILTER (?value != $this) . + } + } + """ ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + $this $PATH ?value . + MINUS { + $this $equals ?value . + } + } + UNION + { + $this $equals ?value . + MINUS { + $this $PATH ?value . + } + } + } + """ ] . + +sh:HasValueConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have value {$hasValue}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value must be {$hasValue}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER ($value = $hasValue) +}""" ; + sh:message "Value must be {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueProperty" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Missing expected value {$hasValue}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Missing expected value {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + FILTER NOT EXISTS { $this $PATH $hasValue } + } + """ ] . + +sh:InConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Value must be in {$in}" ; + sh:message "Value is not in {$in}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isIn . + +sh:JSExecutable dash:abstract true . + +sh:LanguageInConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Language must match any of {$languageIn}" ; + sh:message "Language does not match any of {$languageIn}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateLanguageIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isLanguageIn . + +sh:LessThanConstraintComponent dash:localConstraint true ; + sh:message "Value is not < value of {$lessThan}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThan ?otherValue . + BIND (?value < ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } + """ ] . + +sh:LessThanOrEqualsConstraintComponent dash:localConstraint true ; + sh:message "Value is not <= value of {$lessThanOrEquals}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanOrEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThanOrEquals ?otherValue . + BIND (?value <= ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } +""" ] . + +sh:MaxCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must not have more than {$maxCount} values" ; + sh:message "More than {$maxCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + $this $PATH ?value . + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) > $maxCount) + """ ] . + +sh:MaxExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be < {$maxExclusive}" ; + sh:message "Value is not < {$maxExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxExclusive . + +sh:MaxInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be <= {$maxInclusive}" ; + sh:message "Value is not <= {$maxInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxInclusive . + +sh:MaxLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must not have more than {$maxLength} characters" ; + sh:message "Value has more than {$maxLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxLength . + +sh:MinCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have at least {$minCount} values" ; + sh:message "Fewer than {$minCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + OPTIONAL { + $this $PATH ?value . + } + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) < $minCount) + """ ] . + +sh:MinExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be > {$minExclusive}" ; + sh:message "Value is not > {$minExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinExclusive . + +sh:MinInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be >= {$minInclusive}" ; + sh:message "Value is not >= {$minInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinInclusive . + +sh:MinLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have less than {$minLength} characters" ; + sh:message "Value has less than {$minLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinLength . + +sh:NodeConstraintComponent sh:message "Value does not have shape {$node}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNode" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:NodeKindConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have node kind {$nodeKind}" ; + sh:message "Value does not have node kind {$nodeKind}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNodeKind" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasNodeKind . + +sh:NotConstraintComponent sh:labelTemplate "Value must not have shape {$not}" ; + sh:message "Value does have shape {$not}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNot" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:OrConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateOr" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:PatternConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must match pattern \"{$pattern}\"" ; + sh:message "Value does not match pattern \"{$pattern}\"" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validatePattern" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasPattern . + +sh:QualifiedMaxCountConstraintComponent sh:labelTemplate "No more than {$qualifiedMaxCount} values can have shape {$qualifiedValueShape}" ; + sh:message "More than {$qualifiedMaxCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:QualifiedMinCountConstraintComponent sh:labelTemplate "No fewer than {$qualifiedMinCount} values can have shape {$qualifiedValueShape}" ; + sh:message "Fewer than {$qualifiedMinCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:Rule dash:abstract true . + +sh:Rules a rdfs:Resource ; + rdfs:label "SHACL Rules" ; + rdfs:comment "The SHACL rules entailment regime." ; + rdfs:seeAlso <https://www.w3.org/TR/shacl-af/#Rules> . + +sh:TargetType dash:abstract true . + +sh:UniqueLangConstraintComponent dash:localConstraint true ; + sh:labelTemplate "No language can be used more than once" ; + sh:message "Language \"{?lang}\" used more than once" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueLangProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?lang + WHERE { + { + FILTER sameTerm($uniqueLang, true) . + } + $this $PATH ?value . + BIND (lang(?value) AS ?lang) . + FILTER (bound(?lang) && ?lang != "") . + FILTER EXISTS { + $this $PATH ?otherValue . + FILTER (?otherValue != ?value && ?lang = lang(?otherValue)) . + } + } + """ ] . + +sh:XoneConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateXone" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:order rdfs:range xsd:decimal . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<https://tenet.tetras-libre.fr/transduction-schemes> a owl:Ontology ; + owl:imports <http://datashapes.org/dash> . + +cts:batch_execution_1 a cts:batch_execution ; + rdfs:label "batch execution 1" . + +cts:class_generation a owl:Class, + sh:NodeShape ; + rdfs:label "class generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net . + +cts:dev_schemes a owl:Class, + sh:NodeShape ; + rdfs:label "dev schemes" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_add-event, + cts:old_add-state-property, + cts:old_compose-agt-verb-obj-as-simple-event, + cts:old_compose-aoj-verb-obj-as-simple-state-property, + cts:old_compute-domain-range-of-event-object-properties, + cts:old_compute-domain-range-of-state-property-object-properties . + +cts:generation a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:net_extension a owl:Class, + sh:NodeShape ; + rdfs:label "net extension" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:extend-atom-list-net, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:specify-axis-of-atom-list-net . + +cts:preprocessing a owl:Class, + sh:NodeShape ; + rdfs:label "preprocessing" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:bypass-reification, + cts:define-uw-id, + cts:link-to-scope-entry, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:relation_generation a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property, + cts:old_link-classes-by-relation-property . + +cts:relation_generation_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:generate-event-class, + cts:generate-relation-property . + +cts:relation_generation_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property . + +cts:relation_generation_3_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_link-classes-by-relation-property . + +cts:relation_generation_3_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:link-instances-by-relation-property . + +cts:relation_generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +<https://unl.tetras-libre.fr/rdf/schema#@ability> a owl:Class ; + rdfs:label "ability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@about> a owl:Class ; + rdfs:label "about" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@above> a owl:Class ; + rdfs:label "above" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@according_to> a owl:Class ; + rdfs:label "according to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@across> a owl:Class ; + rdfs:label "across" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@active> a owl:Class ; + rdfs:label "active" ; + rdfs:subClassOf unl:voice ; + skos:definition "He built this house in 1895" . + +<https://unl.tetras-libre.fr/rdf/schema#@adjective> a owl:Class ; + rdfs:label "adjective" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@adverb> a owl:Class ; + rdfs:label "adverb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@advice> a owl:Class ; + rdfs:label "advice" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@after> a owl:Class ; + rdfs:label "after" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@again> a owl:Class ; + rdfs:label "again" ; + rdfs:subClassOf unl:positive ; + skos:definition "iterative" . + +<https://unl.tetras-libre.fr/rdf/schema#@against> a owl:Class ; + rdfs:label "against" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@agreement> a owl:Class ; + rdfs:label "agreement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@all> a owl:Class ; + rdfs:label "all" ; + rdfs:subClassOf unl:quantification ; + skos:definition "universal quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@almost> a owl:Class ; + rdfs:label "almost" ; + rdfs:subClassOf unl:degree ; + skos:definition "approximative" . + +<https://unl.tetras-libre.fr/rdf/schema#@along> a owl:Class ; + rdfs:label "along" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@also> a owl:Class ; + rdfs:label "also" ; + rdfs:subClassOf unl:degree, + unl:specification ; + skos:definition "repetitive" . + +<https://unl.tetras-libre.fr/rdf/schema#@although> a owl:Class ; + rdfs:label "although" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@among> a owl:Class ; + rdfs:label "among" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@and> a owl:Class ; + rdfs:label "and" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@anger> a owl:Class ; + rdfs:label "anger" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@angle_bracket> a owl:Class ; + rdfs:label "angle bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@anterior> a owl:Class ; + rdfs:label "anterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "before some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@anthropomorphism> a owl:Class ; + rdfs:label "anthropomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Ascribing human characteristics to something that is not human, such as an animal or a god (see zoomorphism)" . + +<https://unl.tetras-libre.fr/rdf/schema#@antiphrasis> a owl:Class ; + rdfs:label "antiphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Word or words used contradictory to their usual meaning, often with irony" . + +<https://unl.tetras-libre.fr/rdf/schema#@antonomasia> a owl:Class ; + rdfs:label "antonomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a phrase for a proper name or vice versa" . + +<https://unl.tetras-libre.fr/rdf/schema#@any> a owl:Class ; + rdfs:label "any" ; + rdfs:subClassOf unl:quantification ; + skos:definition "existential quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@archaic> a owl:Class ; + rdfs:label "archaic" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@around> a owl:Class ; + rdfs:label "around" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@as> a owl:Class ; + rdfs:label "as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as.@if> a owl:Class ; + rdfs:label "as.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_far_as> a owl:Class ; + rdfs:label "as far as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_of> a owl:Class ; + rdfs:label "as of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_per> a owl:Class ; + rdfs:label "as per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_regards> a owl:Class ; + rdfs:label "as regards" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_well_as> a owl:Class ; + rdfs:label "as well as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@assertion> a owl:Class ; + rdfs:label "assertion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@assumption> a owl:Class ; + rdfs:label "assumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@at> a owl:Class ; + rdfs:label "at" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@attention> a owl:Class ; + rdfs:label "attention" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@back> a owl:Class ; + rdfs:label "back" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@barring> a owl:Class ; + rdfs:label "barring" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because> a owl:Class ; + rdfs:label "because" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because_of> a owl:Class ; + rdfs:label "because of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@before> a owl:Class ; + rdfs:label "before" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@behind> a owl:Class ; + rdfs:label "behind" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@belief> a owl:Class ; + rdfs:label "belief" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@below> a owl:Class ; + rdfs:label "below" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beside> a owl:Class ; + rdfs:label "beside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@besides> a owl:Class ; + rdfs:label "besides" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@between> a owl:Class ; + rdfs:label "between" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beyond> a owl:Class ; + rdfs:label "beyond" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@both> a owl:Class ; + rdfs:label "both" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@bottom> a owl:Class ; + rdfs:label "bottom" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@brace> a owl:Class ; + rdfs:label "brace" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@brachylogia> a owl:Class ; + rdfs:label "brachylogia" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of conjunctions between a series of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@but> a owl:Class ; + rdfs:label "but" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by> a owl:Class ; + rdfs:label "by" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by_means_of> a owl:Class ; + rdfs:label "by means of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@catachresis> a owl:Class ; + rdfs:label "catachresis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "use an existing word to denote something that has no name in the current language" . + +<https://unl.tetras-libre.fr/rdf/schema#@causative> a owl:Class ; + rdfs:label "causative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "causative" . + +<https://unl.tetras-libre.fr/rdf/schema#@certain> a owl:Class ; + rdfs:label "certain" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@chiasmus> a owl:Class ; + rdfs:label "chiasmus" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "reversal of grammatical structures in successive clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@circa> a owl:Class ; + rdfs:label "circa" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@climax> a owl:Class ; + rdfs:label "climax" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "arrangement of words in order of increasing importance" . + +<https://unl.tetras-libre.fr/rdf/schema#@clockwise> a owl:Class ; + rdfs:label "clockwise" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@colloquial> a owl:Class ; + rdfs:label "colloquial" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@command> a owl:Class ; + rdfs:label "command" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@comment> a owl:Class ; + rdfs:label "comment" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being said about the topic" . + +<https://unl.tetras-libre.fr/rdf/schema#@concerning> a owl:Class ; + rdfs:label "concerning" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@conclusion> a owl:Class ; + rdfs:label "conclusion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@condition> a owl:Class ; + rdfs:label "condition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@confirmation> a owl:Class ; + rdfs:label "confirmation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consent> a owl:Class ; + rdfs:label "consent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@consequence> a owl:Class ; + rdfs:label "consequence" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consonance> a owl:Class ; + rdfs:label "consonance" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of consonant sounds without the repetition of the vowel sounds" . + +<https://unl.tetras-libre.fr/rdf/schema#@contact> a owl:Class ; + rdfs:label "contact" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@contentment> a owl:Class ; + rdfs:label "contentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@continuative> a owl:Class ; + rdfs:label "continuative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "continuous" . + +<https://unl.tetras-libre.fr/rdf/schema#@conviction> a owl:Class ; + rdfs:label "conviction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@decision> a owl:Class ; + rdfs:label "decision" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@deduction> a owl:Class ; + rdfs:label "deduction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@desire> a owl:Class ; + rdfs:label "desire" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@despite> a owl:Class ; + rdfs:label "despite" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@determination> a owl:Class ; + rdfs:label "determination" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@dialect> a owl:Class ; + rdfs:label "dialect" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@disagreement> a owl:Class ; + rdfs:label "disagreement" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@discontentment> a owl:Class ; + rdfs:label "discontentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@dissent> a owl:Class ; + rdfs:label "dissent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@distal> a owl:Class ; + rdfs:label "distal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "far from the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_negative> a owl:Class ; + rdfs:label "double negative" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Grammar construction that can be used as an expression and it is the repetition of negative words" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_parenthesis> a owl:Class ; + rdfs:label "double parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@double_quote> a owl:Class ; + rdfs:label "double quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@doubt> a owl:Class ; + rdfs:label "doubt" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@down> a owl:Class ; + rdfs:label "down" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@dual> a owl:Class ; + rdfs:label "dual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@due_to> a owl:Class ; + rdfs:label "due to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@during> a owl:Class ; + rdfs:label "during" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@dysphemism> a owl:Class ; + rdfs:label "dysphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a harsher, more offensive, or more disagreeable term for another. Opposite of euphemism" . + +<https://unl.tetras-libre.fr/rdf/schema#@each> a owl:Class ; + rdfs:label "each" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@either> a owl:Class ; + rdfs:label "either" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@ellipsis> a owl:Class ; + rdfs:label "ellipsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@emphasis> a owl:Class ; + rdfs:label "emphasis" ; + rdfs:subClassOf unl:positive ; + skos:definition "emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@enough> a owl:Class ; + rdfs:label "enough" ; + rdfs:subClassOf unl:positive ; + skos:definition "sufficiently (enough)" . + +<https://unl.tetras-libre.fr/rdf/schema#@entire> a owl:Class ; + rdfs:label "entire" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@entry> a owl:Class ; + rdfs:label "entry" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "sentence head" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanalepsis> a owl:Class ; + rdfs:label "epanalepsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of the initial word or words of a clause or sentence at the end of the clause or sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanorthosis> a owl:Class ; + rdfs:label "epanorthosis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Immediate and emphatic self-correction, often following a slip of the tongue" . + +<https://unl.tetras-libre.fr/rdf/schema#@equal> a owl:Class ; + rdfs:label "equal" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of equality" . + +<https://unl.tetras-libre.fr/rdf/schema#@equivalent> a owl:Class ; + rdfs:label "equivalent" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@euphemism> a owl:Class ; + rdfs:label "euphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a less offensive or more agreeable term for another" . + +<https://unl.tetras-libre.fr/rdf/schema#@even> a owl:Class ; + rdfs:label "even" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@even.@if> a owl:Class ; + rdfs:label "even.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except> a owl:Class ; + rdfs:label "except" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except.@if> a owl:Class ; + rdfs:label "except.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except_for> a owl:Class ; + rdfs:label "except for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exclamation> a owl:Class ; + rdfs:label "exclamation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@excluding> a owl:Class ; + rdfs:label "excluding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exhortation> a owl:Class ; + rdfs:label "exhortation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@expectation> a owl:Class ; + rdfs:label "expectation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@experiential> a owl:Class ; + rdfs:label "experiential" ; + rdfs:subClassOf unl:aspect ; + skos:definition "experience" . + +<https://unl.tetras-libre.fr/rdf/schema#@extra> a owl:Class ; + rdfs:label "extra" ; + rdfs:subClassOf unl:positive ; + skos:definition "excessively (too)" . + +<https://unl.tetras-libre.fr/rdf/schema#@failing> a owl:Class ; + rdfs:label "failing" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@familiar> a owl:Class ; + rdfs:label "familiar" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@far> a owl:Class ; + rdfs:label "far" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@fear> a owl:Class ; + rdfs:label "fear" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@female> a owl:Class ; + rdfs:label "female" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@focus> a owl:Class ; + rdfs:label "focus" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "information that is contrary to the presuppositions of the interlocutor" . + +<https://unl.tetras-libre.fr/rdf/schema#@following> a owl:Class ; + rdfs:label "following" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@for> a owl:Class ; + rdfs:label "for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@from> a owl:Class ; + rdfs:label "from" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@front> a owl:Class ; + rdfs:label "front" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@future> a owl:Class ; + rdfs:label "future" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time after the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@generic> a owl:Class ; + rdfs:label "generic" ; + rdfs:subClassOf unl:quantification ; + skos:definition "no quantification" . + +<https://unl.tetras-libre.fr/rdf/schema#@given> a owl:Class ; + rdfs:label "given" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@habitual> a owl:Class ; + rdfs:label "habitual" ; + rdfs:subClassOf unl:aspect ; + skos:definition "habitual" . + +<https://unl.tetras-libre.fr/rdf/schema#@half> a owl:Class ; + rdfs:label "half" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@hesitation> a owl:Class ; + rdfs:label "hesitation" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@hope> a owl:Class ; + rdfs:label "hope" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@hyperbole> a owl:Class ; + rdfs:label "hyperbole" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of exaggerated terms for emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@hypothesis> a owl:Class ; + rdfs:label "hypothesis" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@if> a owl:Class ; + rdfs:label "if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@if.@only> a owl:Class ; + rdfs:label "if.@only" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@imperfective> a owl:Class ; + rdfs:label "imperfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "uncompleted" . + +<https://unl.tetras-libre.fr/rdf/schema#@in> a owl:Class ; + rdfs:label "in" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@in_accordance_with> a owl:Class ; + rdfs:label "in accordance with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_addition_to> a owl:Class ; + rdfs:label "in addition to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case> a owl:Class ; + rdfs:label "in case" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case_of> a owl:Class ; + rdfs:label "in case of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_favor_of> a owl:Class ; + rdfs:label "in favor of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_place_of> a owl:Class ; + rdfs:label "in place of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_spite_of> a owl:Class ; + rdfs:label "in spite of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inceptive> a owl:Class ; + rdfs:label "inceptive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "beginning" . + +<https://unl.tetras-libre.fr/rdf/schema#@inchoative> a owl:Class ; + rdfs:label "inchoative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "change of state" . + +<https://unl.tetras-libre.fr/rdf/schema#@including> a owl:Class ; + rdfs:label "including" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inferior> a owl:Class ; + rdfs:label "inferior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@inside> a owl:Class ; + rdfs:label "inside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@instead_of> a owl:Class ; + rdfs:label "instead of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@intention> a owl:Class ; + rdfs:label "intention" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interrogation> a owl:Class ; + rdfs:label "interrogation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interruption> a owl:Class ; + rdfs:label "interruption" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "insertion of a clause or sentence in a place where it interrupts the natural flow of the sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@intimate> a owl:Class ; + rdfs:label "intimate" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@invitation> a owl:Class ; + rdfs:label "invitation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@irony> a owl:Class ; + rdfs:label "irony" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of word in a way that conveys a meaning opposite to its usual meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@iterative> a owl:Class ; + rdfs:label "iterative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "repetition" . + +<https://unl.tetras-libre.fr/rdf/schema#@jargon> a owl:Class ; + rdfs:label "jargon" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@judgement> a owl:Class ; + rdfs:label "judgement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@least> a owl:Class ; + rdfs:label "least" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@left> a owl:Class ; + rdfs:label "left" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@less> a owl:Class ; + rdfs:label "less" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@like> a owl:Class ; + rdfs:label "like" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@literary> a owl:Class ; + rdfs:label "literary" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@majority> a owl:Class ; + rdfs:label "majority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a major part" . + +<https://unl.tetras-libre.fr/rdf/schema#@male> a owl:Class ; + rdfs:label "male" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@maybe> a owl:Class ; + rdfs:label "maybe" ; + rdfs:subClassOf unl:polarity ; + skos:definition "dubitative" . + +<https://unl.tetras-libre.fr/rdf/schema#@medial> a owl:Class ; + rdfs:label "medial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@metaphor> a owl:Class ; + rdfs:label "metaphor" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Stating one entity is another for the purpose of comparing them in quality" . + +<https://unl.tetras-libre.fr/rdf/schema#@metonymy> a owl:Class ; + rdfs:label "metonymy" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a word to suggest what is really meant" . + +<https://unl.tetras-libre.fr/rdf/schema#@minority> a owl:Class ; + rdfs:label "minority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a minor part" . + +<https://unl.tetras-libre.fr/rdf/schema#@minus> a owl:Class ; + rdfs:label "minus" ; + rdfs:subClassOf unl:positive ; + skos:definition "downtoned (a little)" . + +<https://unl.tetras-libre.fr/rdf/schema#@more> a owl:Class ; + rdfs:label "more" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@most> a owl:Class ; + rdfs:label "most" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@multal> a owl:Class ; + rdfs:label "multal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@narrative> a owl:Class ; + rdfs:label "narrative" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@near> a owl:Class ; + rdfs:label "near" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@necessity> a owl:Class ; + rdfs:label "necessity" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@neither> a owl:Class ; + rdfs:label "neither" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@neutral> a owl:Class ; + rdfs:label "neutral" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@no> a owl:Class ; + rdfs:label "no" ; + rdfs:subClassOf unl:quantification ; + skos:definition "none" . + +<https://unl.tetras-libre.fr/rdf/schema#@not> a owl:Class ; + rdfs:label "not" ; + rdfs:subClassOf unl:polarity ; + skos:definition "negative" . + +<https://unl.tetras-libre.fr/rdf/schema#@notwithstanding> a owl:Class ; + rdfs:label "notwithstanding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@noun> a owl:Class ; + rdfs:label "noun" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@obligation> a owl:Class ; + rdfs:label "obligation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@of> a owl:Class ; + rdfs:label "of" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@off> a owl:Class ; + rdfs:label "off" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on> a owl:Class ; + rdfs:label "on" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@on_account_of> a owl:Class ; + rdfs:label "on account of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on_behalf_of> a owl:Class ; + rdfs:label "on behalf of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@one> a owl:Class ; + rdfs:label "1" ; + rdfs:subClassOf unl:person ; + skos:definition "first person speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@only> a owl:Class ; + rdfs:label "only" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@onomatopoeia> a owl:Class ; + rdfs:label "onomatopoeia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Words that sound like their meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@opinion> a owl:Class ; + rdfs:label "opinion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@opposite> a owl:Class ; + rdfs:label "opposite" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@or> a owl:Class ; + rdfs:label "or" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@ordinal> a owl:Class ; + rdfs:label "ordinal" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@other> a owl:Class ; + rdfs:label "other" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@outside> a owl:Class ; + rdfs:label "outside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@over> a owl:Class ; + rdfs:label "over" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@owing_to> a owl:Class ; + rdfs:label "owing to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@own> a owl:Class ; + rdfs:label "own" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@oxymoron> a owl:Class ; + rdfs:label "oxymoron" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using two terms together, that normally contradict each other" . + +<https://unl.tetras-libre.fr/rdf/schema#@pace> a owl:Class ; + rdfs:label "pace" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@pain> a owl:Class ; + rdfs:label "pain" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@paradox> a owl:Class ; + rdfs:label "paradox" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of apparently contradictory ideas to point out some underlying truth" . + +<https://unl.tetras-libre.fr/rdf/schema#@parallelism> a owl:Class ; + rdfs:label "parallelism" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "use of similar structures in two or more clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@parenthesis> a owl:Class ; + rdfs:label "parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@paronomasia> a owl:Class ; + rdfs:label "paronomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "A form of pun, in which words similar in sound but with different meanings are used" . + +<https://unl.tetras-libre.fr/rdf/schema#@part> a owl:Class ; + rdfs:label "part" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@passive> a owl:Class ; + rdfs:label "passive" ; + rdfs:subClassOf unl:voice ; + skos:definition "This house was built in 1895." . + +<https://unl.tetras-libre.fr/rdf/schema#@past> a owl:Class ; + rdfs:label "past" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time before the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@paucal> a owl:Class ; + rdfs:label "paucal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@pejorative> a owl:Class ; + rdfs:label "pejorative" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@per> a owl:Class ; + rdfs:label "per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@perfect> a owl:Class ; + rdfs:label "perfect" ; + rdfs:subClassOf unl:aspect ; + skos:definition "perfect" . + +<https://unl.tetras-libre.fr/rdf/schema#@perfective> a owl:Class ; + rdfs:label "perfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "completed" . + +<https://unl.tetras-libre.fr/rdf/schema#@periphrasis> a owl:Class ; + rdfs:label "periphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using several words instead of few" . + +<https://unl.tetras-libre.fr/rdf/schema#@permission> a owl:Class ; + rdfs:label "permission" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@permissive> a owl:Class ; + rdfs:label "permissive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "permissive" . + +<https://unl.tetras-libre.fr/rdf/schema#@persistent> a owl:Class ; + rdfs:label "persistent" ; + rdfs:subClassOf unl:aspect ; + skos:definition "persistent" . + +<https://unl.tetras-libre.fr/rdf/schema#@person> a owl:Class ; + rdfs:label "person" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@pleonasm> a owl:Class ; + rdfs:label "pleonasm" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "Use of superfluous or redundant words" . + +<https://unl.tetras-libre.fr/rdf/schema#@plus> a owl:Class ; + rdfs:label "plus" ; + rdfs:subClassOf unl:positive ; + skos:definition "intensified (very)" . + +<https://unl.tetras-libre.fr/rdf/schema#@polite> a owl:Class ; + rdfs:label "polite" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@polyptoton> a owl:Class ; + rdfs:label "polyptoton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of words derived from the same root" . + +<https://unl.tetras-libre.fr/rdf/schema#@polysyndeton> a owl:Class ; + rdfs:label "polysyndeton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of conjunctions" . + +<https://unl.tetras-libre.fr/rdf/schema#@possibility> a owl:Class ; + rdfs:label "possibility" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@posterior> a owl:Class ; + rdfs:label "posterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "after some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@prediction> a owl:Class ; + rdfs:label "prediction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@present> a owl:Class ; + rdfs:label "present" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@presumption> a owl:Class ; + rdfs:label "presumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prior_to> a owl:Class ; + rdfs:label "prior to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@probability> a owl:Class ; + rdfs:label "probability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@progressive> a owl:Class ; + rdfs:label "progressive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "ongoing" . + +<https://unl.tetras-libre.fr/rdf/schema#@prohibition> a owl:Class ; + rdfs:label "prohibition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@promise> a owl:Class ; + rdfs:label "promise" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prospective> a owl:Class ; + rdfs:label "prospective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "imminent" . + +<https://unl.tetras-libre.fr/rdf/schema#@proximal> a owl:Class ; + rdfs:label "proximal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@pursuant_to> a owl:Class ; + rdfs:label "pursuant to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@qua> a owl:Class ; + rdfs:label "qua" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@quadrual> a owl:Class ; + rdfs:label "quadrual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@recent> a owl:Class ; + rdfs:label "recent" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "close to the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@reciprocal> a owl:Class ; + rdfs:label "reciprocal" ; + rdfs:subClassOf unl:voice ; + skos:definition "They killed each other." . + +<https://unl.tetras-libre.fr/rdf/schema#@reflexive> a owl:Class ; + rdfs:label "reflexive" ; + rdfs:subClassOf unl:voice ; + skos:definition "He killed himself." . + +<https://unl.tetras-libre.fr/rdf/schema#@regarding> a owl:Class ; + rdfs:label "regarding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regardless_of> a owl:Class ; + rdfs:label "regardless of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regret> a owl:Class ; + rdfs:label "regret" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@relative> a owl:Class ; + rdfs:label "relative" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "relative clause head" . + +<https://unl.tetras-libre.fr/rdf/schema#@relief> a owl:Class ; + rdfs:label "relief" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@remote> a owl:Class ; + rdfs:label "remote" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "remote from the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@repetition> a owl:Class ; + rdfs:label "repetition" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Repeated usage of word(s)/group of words in the same sentence to create a poetic/rhythmic effect" . + +<https://unl.tetras-libre.fr/rdf/schema#@request> a owl:Class ; + rdfs:label "request" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@result> a owl:Class ; + rdfs:label "result" ; + rdfs:subClassOf unl:aspect ; + skos:definition "result" . + +<https://unl.tetras-libre.fr/rdf/schema#@reverential> a owl:Class ; + rdfs:label "reverential" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@right> a owl:Class ; + rdfs:label "right" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@round> a owl:Class ; + rdfs:label "round" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@same> a owl:Class ; + rdfs:label "same" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@save> a owl:Class ; + rdfs:label "save" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@side> a owl:Class ; + rdfs:label "side" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@since> a owl:Class ; + rdfs:label "since" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@single_quote> a owl:Class ; + rdfs:label "single quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@singular> a owl:Class ; + rdfs:label "singular" ; + rdfs:subClassOf unl:quantification ; + skos:definition "default" . + +<https://unl.tetras-libre.fr/rdf/schema#@slang> a owl:Class ; + rdfs:label "slang" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@so> a owl:Class ; + rdfs:label "so" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@speculation> a owl:Class ; + rdfs:label "speculation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@speech> a owl:Class ; + rdfs:label "speech" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "direct speech" . + +<https://unl.tetras-libre.fr/rdf/schema#@square_bracket> a owl:Class ; + rdfs:label "square bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@subsequent_to> a owl:Class ; + rdfs:label "subsequent to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@such> a owl:Class ; + rdfs:label "such" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@suggestion> a owl:Class ; + rdfs:label "suggestion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@superior> a owl:Class ; + rdfs:label "superior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@surprise> a owl:Class ; + rdfs:label "surprise" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@symploce> a owl:Class ; + rdfs:label "symploce" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "combination of anaphora and epistrophe" . + +<https://unl.tetras-libre.fr/rdf/schema#@synecdoche> a owl:Class ; + rdfs:label "synecdoche" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Form of metonymy, in which a part stands for the whole" . + +<https://unl.tetras-libre.fr/rdf/schema#@synesthesia> a owl:Class ; + rdfs:label "synesthesia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Description of one kind of sense impression by using words that normally describe another." . + +<https://unl.tetras-libre.fr/rdf/schema#@taboo> a owl:Class ; + rdfs:label "taboo" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@terminative> a owl:Class ; + rdfs:label "terminative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "cessation" . + +<https://unl.tetras-libre.fr/rdf/schema#@than> a owl:Class ; + rdfs:label "than" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thanks_to> a owl:Class ; + rdfs:label "thanks to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@that_of> a owl:Class ; + rdfs:label "that of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thing> a owl:Class ; + rdfs:label "thing" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@threat> a owl:Class ; + rdfs:label "threat" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@three> a owl:Class ; + rdfs:label "3" ; + rdfs:subClassOf unl:person ; + skos:definition "third person" . + +<https://unl.tetras-libre.fr/rdf/schema#@through> a owl:Class ; + rdfs:label "through" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@throughout> a owl:Class ; + rdfs:label "throughout" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@times> a owl:Class ; + rdfs:label "times" ; + rdfs:subClassOf unl:quantification ; + skos:definition "multiplicative" . + +<https://unl.tetras-libre.fr/rdf/schema#@title> a owl:Class ; + rdfs:label "title" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@to> a owl:Class ; + rdfs:label "to" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@top> a owl:Class ; + rdfs:label "top" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@topic> a owl:Class ; + rdfs:label "topic" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being talked about" . + +<https://unl.tetras-libre.fr/rdf/schema#@towards> a owl:Class ; + rdfs:label "towards" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@trial> a owl:Class ; + rdfs:label "trial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@tuple> a owl:Class ; + rdfs:label "tuple" ; + rdfs:subClassOf unl:quantification ; + skos:definition "collective" . + +<https://unl.tetras-libre.fr/rdf/schema#@two> a owl:Class ; + rdfs:label "2" ; + rdfs:subClassOf unl:person ; + skos:definition "second person addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@under> a owl:Class ; + rdfs:label "under" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@unit> a owl:Class ; + rdfs:label "unit" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@unless> a owl:Class ; + rdfs:label "unless" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@unlike> a owl:Class ; + rdfs:label "unlike" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@until> a owl:Class ; + rdfs:label "until" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@up> a owl:Class ; + rdfs:label "up" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@verb> a owl:Class ; + rdfs:label "verb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@versus> a owl:Class ; + rdfs:label "versus" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@vocative> a owl:Class ; + rdfs:label "vocative" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@warning> a owl:Class ; + rdfs:label "warning" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@weariness> a owl:Class ; + rdfs:label "weariness" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@wh> a owl:Class ; + rdfs:label "wh" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@with> a owl:Class ; + rdfs:label "with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_regard_to> a owl:Class ; + rdfs:label "with regard to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_relation_to> a owl:Class ; + rdfs:label "with relation to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_respect_to> a owl:Class ; + rdfs:label "with respect to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@within> a owl:Class ; + rdfs:label "within" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@without> a owl:Class ; + rdfs:label "without" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@worth> a owl:Class ; + rdfs:label "worth" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@yes> a owl:Class ; + rdfs:label "yes" ; + rdfs:subClassOf unl:polarity ; + skos:definition "affirmative" . + +<https://unl.tetras-libre.fr/rdf/schema#@zoomorphism> a owl:Class ; + rdfs:label "zoomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Applying animal characteristics to humans or gods" . + +unl:UNLKB_Top_Concept a owl:Class ; + rdfs:comment "Top concepts of a UNL Knoledge Base that shall not correspond to a UW." ; + rdfs:subClassOf unl:UNLKB_Node, + unl:Universal_Word . + +unl:UNL_Paragraph a owl:Class ; + rdfs:comment """For more information about UNL Paragraphs, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:and a owl:Class, + owl:ObjectProperty ; + rdfs:label "and" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "conjunction"@en ; + skos:definition "Used to state a conjunction between two entities."@en ; + skos:example """John and Mary = and(John;Mary) +both John and Mary = and(John;Mary) +neither John nor Mary = and(John;Mary) +John as well as Mary = and(John;Mary)"""@en . + +unl:ant a owl:Class, + owl:ObjectProperty ; + rdfs:label "ant" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "opposition or concession"@en ; + skos:definition "Used to indicate that two entities do not share the same meaning or reference. Also used to indicate concession."@en ; + skos:example """John is not Peter = ant(Peter;John) +3 + 2 != 6 = ant(6;3+2) +Although he's quiet, he's not shy = ant(he's not shy;he's quiet)"""@en . + +unl:bas a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas" ; + rdfs:subClassOf unl:Universal_Relation, + unl:per ; + rdfs:subPropertyOf unl:per ; + skos:altLabel "basis for a comparison" . + +unl:cnt a owl:Class, + owl:ObjectProperty ; + rdfs:label "cnt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "content or theme"@en ; + skos:definition "The object of an stative or experiental verb, or the theme of an entity."@en ; + skos:example """John has two daughters = cnt(have;two daughters) +the book belongs to Mary = cnt(belong;Mary) +the book contains many pictures = cnt(contain;many pictures) +John believes in Mary = cnt(believe;Mary) +John saw Mary = cnt(saw;Mary) +John loves Mary = cnt(love;Mary) +The explosion was heard by everyone = cnt(hear;explosion) +a book about Peter = cnt(book;Peter)"""@en . + +unl:con a owl:Class, + owl:ObjectProperty ; + rdfs:label "con" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "condition"@en ; + skos:definition "A condition of an event."@en ; + skos:example """If I see him, I will tell him = con(I will tell him;I see him) +I will tell him if I see him = con(I will tell him;I see him)"""@en . + +unl:coo a owl:Class, + owl:ObjectProperty ; + rdfs:label "coo" ; + rdfs:subClassOf unl:Universal_Relation, + unl:dur ; + rdfs:subPropertyOf unl:dur ; + skos:altLabel "co-occurrence" . + +unl:equ a owl:Class, + owl:ObjectProperty ; + rdfs:label "equ" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "synonym or paraphrase"@en ; + skos:definition "Used to indicate that two entities share the same meaning or reference. Also used to indicate semantic apposition."@en ; + skos:example """The morning star is the evening star = equ(evening star;morning star) +3 + 2 = 5 = equ(5;3+2) +UN (United Nations) = equ(UN;United Nations) +John, the brother of Mary = equ(John;the brother of Mary)"""@en . + +unl:exp a owl:Class, + owl:ObjectProperty ; + rdfs:label "exp" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "experiencer"@en ; + skos:definition "A participant in an action or process who receives a sensory impression or is the locus of an experiential event."@en ; + skos:example """John believes in Mary = exp(believe;John) +John saw Mary = exp(saw;John) +John loves Mary = exp(love;John) +The explosion was heard by everyone = exp(hear;everyone)"""@en . + +unl:fld a owl:Class, + owl:ObjectProperty ; + rdfs:label "fld" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "field"@en ; + skos:definition "Used to indicate the semantic domain of an entity."@en ; + skos:example "sentence (linguistics) = fld(sentence;linguistics)"@en . + +unl:gol a owl:Class, + owl:ObjectProperty ; + rdfs:label "gol" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "final state, place, destination or recipient"@en ; + skos:definition "The final state, place, destination or recipient of an entity or event."@en ; + skos:example """John received the book = gol(received;John) +John won the prize = gol(won;John) +John changed from poor to rich = gol(changed;rich) +John gave the book to Mary = gol(gave;Mary) +He threw the book at me = gol(threw;me) +John goes to NY = gol(go;NY) +train to NY = gol(train;NY)"""@en . + +unl:has_attribute a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:attribute ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_id a owl:AnnotationProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_index a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range xsd:integer ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_master_definition a owl:AnnotationProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range xsd:string ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_scope a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Scope ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_scope_of . + +unl:has_source a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:equivalentProperty unl:is_source_of . + +unl:has_target a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_target_of . + +unl:icl a owl:Class, + owl:ObjectProperty ; + rdfs:label "icl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "hyponymy, is a kind of"@en ; + skos:definition "Used to refer to a subclass of a class."@en ; + skos:example "Dogs are mammals = icl(mammal;dogs)"@en . + +unl:iof a owl:Class, + owl:ObjectProperty ; + rdfs:label "iof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is an instance of"@en ; + skos:definition "Used to refer to an instance or individual element of a class."@en ; + skos:example "John is a human being = iof(human being;John)"@en . + +unl:is_substructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_superstructure_of . + +unl:lpl a owl:Class, + owl:ObjectProperty ; + rdfs:label "lpl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "logical place"@en ; + skos:definition "A non-physical place where an entity or event occurs or a state exists."@en ; + skos:example """John works in politics = lpl(works;politics) +John is in love = lpl(John;love) +officer in command = lpl(officer;command)"""@en . + +unl:mat a owl:Class, + owl:ObjectProperty ; + rdfs:label "mat" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "material"@en ; + skos:definition "Used to indicate the material of which an entity is made."@en ; + skos:example """A statue in bronze = mat(statue;bronze) +a wood box = mat(box;wood) +a glass mug = mat(mug;glass)"""@en . + +unl:met a owl:Class, + owl:ObjectProperty ; + rdfs:label "met" ; + rdfs:subClassOf unl:ins ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:ins ; + skos:altLabel "method" . + +unl:nam a owl:Class, + owl:ObjectProperty ; + rdfs:label "nam" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "name"@en ; + skos:definition "The name of an entity."@en ; + skos:example """The city of New York = nam(city;New York) +my friend Willy = nam(friend;Willy)"""@en . + +unl:opl a owl:Class, + owl:ObjectProperty ; + rdfs:label "opl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "objective place"@en ; + skos:definition "A place affected by an action or process."@en ; + skos:example """John was hit in the face = opl(hit;face) +John fell in the water = opl(fell;water)"""@en . + +unl:pof a owl:Class, + owl:ObjectProperty ; + rdfs:label "pof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is part of"@en ; + skos:definition "Used to refer to a part of a whole."@en ; + skos:example "John is part of the family = pof(family;John)"@en . + +unl:pos a owl:Class, + owl:ObjectProperty ; + rdfs:label "pos" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "possessor"@en ; + skos:definition "The possessor of a thing."@en ; + skos:example """the book of John = pos(book;John) +John's book = pos(book;John) +his book = pos(book;he)"""@en . + +unl:ptn a owl:Class, + owl:ObjectProperty ; + rdfs:label "ptn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "partner"@en ; + skos:definition "A secondary (non-focused) participant in an event."@en ; + skos:example """John fights with Peter = ptn(fight;Peter) +John wrote the letter with Peter = ptn(wrote;Peter) +John lives with Peter = ptn(live;Peter)"""@en . + +unl:pur a owl:Class, + owl:ObjectProperty ; + rdfs:label "pur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "purpose"@en ; + skos:definition "The purpose of an entity or event."@en ; + skos:example """John left early in order to arrive early = pur(John left early;arrive early) +You should come to see us = pur(you should come;see us) +book for children = pur(book;children)"""@en . + +unl:qua a owl:Class, + owl:ObjectProperty ; + rdfs:label "qua" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "quantity"@en ; + skos:definition "Used to express the quantity of an entity."@en ; + skos:example """two books = qua(book;2) +a group of students = qua(students;group)"""@en . + +unl:rsn a owl:Class, + owl:ObjectProperty ; + rdfs:label "rsn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "reason"@en ; + skos:definition "The reason of an entity or event."@en ; + skos:example """John left because it was late = rsn(John left;it was late) +John killed Mary because of John = rsn(killed;John)"""@en . + +unl:seq a owl:Class, + owl:ObjectProperty ; + rdfs:label "seq" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "consequence"@en ; + skos:definition "Used to express consequence."@en ; + skos:example "I think therefore I am = seq(I think;I am)"@en . + +unl:src a owl:Class, + owl:ObjectProperty ; + rdfs:label "src" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "initial state, place, origin or source"@en ; + skos:definition "The initial state, place, origin or source of an entity or event."@en ; + skos:example """John came from NY = src(came;NY) +John is from NY = src(John;NY) +train from NY = src(train;NY) +John changed from poor into rich = src(changed;poor) +John received the book from Peter = src(received;Peter) +John withdrew the money from the cashier = src(withdrew;cashier)"""@en . + +unl:tmf a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmf" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "initial time"@en ; + skos:definition "The initial time of an entity or event."@en ; + skos:example "John worked since early = tmf(worked;early)"@en . + +unl:tmt a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmt" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "final time"@en ; + skos:definition "The final time of an entity or event."@en ; + skos:example "John worked until late = tmt(worked;late)"@en . + +unl:via a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas", + "met", + "via" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "intermediate state or place"@en ; + skos:definition "The intermediate place or state of an entity or event."@en ; + skos:example """John went from NY to Geneva through Paris = via(went;Paris) +The baby crawled across the room = via(crawled;across the room)"""@en . + +dash:ActionGroup a dash:ShapeClass ; + rdfs:label "Action group" ; + rdfs:comment "A group of ResourceActions, used to arrange items in menus etc. Similar to sh:PropertyGroups, they may have a sh:order and should have labels (in multiple languages if applicable)." ; + rdfs:subClassOf rdfs:Resource . + +dash:AllObjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All objects target" ; + rdfs:comment "A target containing all objects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allObjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All objects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?anyS ?anyP ?this . +}""" . + +dash:AllSubjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All subjects target" ; + rdfs:comment "A target containing all subjects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allSubjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All subjects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this ?anyP ?anyO . +}""" . + +dash:ClosedByTypesConstraintComponent-closedByTypes a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to indicate that the focus nodes are closed by their types. A constraint violation is reported for each property value of the focus node where the property is not among those that are explicitly declared via sh:property/sh:path in any of the rdf:types of the focus node (and their superclasses). The property rdf:type is always permitted." ; + sh:maxCount 1 ; + sh:path dash:closedByTypes . + +dash:CoExistsWithConstraintComponent-coExistsWith a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "The properties that must co-exist with the surrounding property (path). If the surrounding property path has any value then the given property must also have a value, and vice versa." ; + sh:name "co-exists with" ; + sh:nodeKind sh:IRI ; + sh:path dash:coExistsWith . + +dash:ConstraintReificationShape-message a sh:PropertyShape ; + dash:singleLine true ; + sh:name "messages" ; + sh:nodeKind sh:Literal ; + sh:or dash:StringOrLangString ; + sh:path sh:message . + +dash:ConstraintReificationShape-severity a sh:PropertyShape ; + sh:class sh:Severity ; + sh:maxCount 1 ; + sh:name "severity" ; + sh:nodeKind sh:IRI ; + sh:path sh:severity . + +dash:GraphValidationTestCase a dash:ShapeClass ; + rdfs:label "Graph validation test case" ; + rdfs:comment "A test case that performs SHACL constraint validation on the whole graph and compares the results with the expected validation results stored with the test case. By default this excludes meta-validation (i.e. the validation of the shape definitions themselves). If that's desired, set dash:validateShapes to true." ; + rdfs:subClassOf dash:ValidationTestCase . + +dash:HasValueInConstraintComponent-hasValueIn a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:description "At least one of the value nodes must be a member of the given list." ; + sh:name "has value in" ; + sh:node dash:ListShape ; + sh:path dash:hasValueIn . + +dash:HasValueWithClassConstraintComponent-hasValueWithClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "One of the values of the property path must be an instance of the given class." ; + sh:name "has value with class" ; + sh:nodeKind sh:IRI ; + sh:path dash:hasValueWithClass . + +dash:IndexedConstraintComponent-indexed a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to activate indexing for this property." ; + sh:maxCount 1 ; + sh:name "indexed" ; + sh:path dash:indexed . + +dash:ListNodeShape a sh:NodeShape ; + rdfs:label "List node shape" ; + rdfs:comment "Defines constraints on what it means for a node to be a node within a well-formed RDF list. Note that this does not check whether the rdf:rest items are also well-formed lists as this would lead to unsupported recursion." ; + sh:or ( [ sh:hasValue () ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:rest ] ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:rest ] ] ) . + +dash:ListShape a sh:NodeShape ; + rdfs:label "List shape" ; + rdfs:comment """Defines constraints on what it means for a node to be a well-formed RDF list. + +The focus node must either be rdf:nil or not recursive. Furthermore, this shape uses dash:ListNodeShape as a "helper" to walk through all members of the whole list (including itself).""" ; + sh:or ( [ sh:hasValue () ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + dash:nonRecursive true ; + sh:path [ sh:oneOrMorePath rdf:rest ] ] ] ) ; + sh:property [ a sh:PropertyShape ; + rdfs:comment "Each list member (including this node) must be have the shape dash:ListNodeShape." ; + sh:node dash:ListNodeShape ; + sh:path [ sh:zeroOrMorePath rdf:rest ] ] . + +dash:MultiViewer a dash:ShapeClass ; + rdfs:label "Multi viewer" ; + rdfs:comment "A viewer for multiple/all values at once." ; + rdfs:subClassOf dash:Viewer . + +dash:NonRecursiveConstraintComponent-nonRecursive a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description """Used to state that a property or path must not point back to itself. + +For example, "a person cannot have itself as parent" can be expressed by setting dash:nonRecursive=true for a given sh:path. + +To express that a person cannot have itself among any of its (recursive) parents, use a sh:path with the + operator such as ex:parent+.""" ; + sh:maxCount 1 ; + sh:name "non-recursive" ; + sh:path dash:nonRecursive . + +dash:ParameterConstraintComponent-parameter a sh:Parameter ; + sh:path sh:parameter . + +dash:PrimaryKeyConstraintComponent-uriStart a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "The start of the URIs of well-formed resources. If specified then the associated property/path serves as \"primary key\" for all target nodes (instances). All such target nodes need to have a URI that starts with the given string, followed by the URI-encoded value of the primary key property." ; + sh:maxCount 1 ; + sh:name "URI start" ; + sh:path dash:uriStart . + +dash:RDFQueryJSLibrary a sh:JSLibrary ; + rdfs:label "rdfQuery JavaScript Library" ; + sh:jsLibraryURL "http://datashapes.org/js/rdfquery.js"^^xsd:anyURI . + +dash:ReifiableByConstraintComponent-reifiableBy a sh:Parameter ; + sh:class sh:NodeShape ; + sh:description "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Also, SHACL validators can use it to determine how to validate reified triples. Use dash:None to indicate that no reification should be permitted." ; + sh:maxCount 1 ; + sh:name "reifiable by" ; + sh:nodeKind sh:IRI ; + sh:path dash:reifiableBy . + +dash:RootClassConstraintComponent-rootClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "The root class." ; + sh:name "root class" ; + sh:nodeKind sh:IRI ; + sh:path dash:rootClass . + +dash:ScriptConstraint a dash:ShapeClass ; + rdfs:label "Script constraint" ; + rdfs:comment """The class of constraints that are based on Scripts. Depending on whether dash:onAllValues is set to true, these scripts can access the following pre-assigned variables: + +- focusNode: the focus node of the constraint (a NamedNode) +- if dash:onAllValues is not true: value: the current value node (e.g. a JavaScript string for xsd:string literals, a number for numeric literals or true or false for xsd:boolean literals. All other literals become LiteralNodes, and non-literals become instances of NamedNode) +- if dash:onAllValues is true: values: an array of current value nodes, as above. + +If the expression returns an array then each array member will be mapped to one validation result, following the mapping rules below. + +For string results, a validation result will use the string as sh:message. +For boolean results, a validation result will be produced if the result is false (true means no violation). + +For object results, a validation result will be produced using the value of the field "message" of the object as result message. If the field "value" has a value then this will become the sh:value in the violation. + +Unless another sh:message has been directly returned, the sh:message of the dash:ScriptConstraint will be used, similar to sh:message at SPARQL Constraints. These sh:messages can access the values {$focusNode}, ${value} etc as template variables.""" ; + rdfs:subClassOf dash:Script . + +dash:ScriptConstraintComponent-scriptConstraint a sh:Parameter ; + sh:class dash:ScriptConstraint ; + sh:description "The Script constraint(s) to apply." ; + sh:name "script constraint" ; + sh:path dash:scriptConstraint . + +dash:SingleLineConstraintComponent-singleLine a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to state that the lexical form of literal value nodes must not contain any line breaks. False to state that line breaks are explicitly permitted." ; + sh:group tosh:StringConstraintsPropertyGroup ; + sh:maxCount 1 ; + sh:name "single line" ; + sh:order 30.0 ; + sh:path dash:singleLine . + +dash:StemConstraintComponent-stem a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "If specified then every value node must be an IRI and the IRI must start with the given string value." ; + sh:maxCount 1 ; + sh:name "stem" ; + sh:path dash:stem . + +dash:StringOrLangString a rdf:List ; + rdfs:label "String or langString" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string or rdf:langString." . + +dash:SubSetOfConstraintComponent-subSetOf a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "Can be used to state that all value nodes must also be values of a specified other property at the same focus node." ; + sh:name "sub-set of" ; + sh:nodeKind sh:IRI ; + sh:path dash:subSetOf . + +dash:SymmetricConstraintComponent-symmetric a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "If set to true then if A relates to B then B must relate to A." ; + sh:maxCount 1 ; + sh:name "symmetric" ; + sh:path dash:symmetric . + +dash:UniqueValueForClassConstraintComponent-uniqueValueForClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "States that the values of the property must be unique for all instances of a given class (and its subclasses)." ; + sh:name "unique value for class" ; + sh:nodeKind sh:IRI ; + sh:path dash:uniqueValueForClass . + +dash:ValidationTestCase a dash:ShapeClass ; + rdfs:label "Validation test case" ; + dash:abstract true ; + rdfs:comment "Abstract superclass for test cases concerning SHACL constraint validation. Future versions may add new kinds of validatin test cases, e.g. to validate a single resource only." ; + rdfs:subClassOf dash:TestCase . + +dash:closedByTypes a rdf:Property ; + rdfs:label "closed by types" . + +dash:coExistsWith a rdf:Property ; + rdfs:label "co-exists with" ; + rdfs:comment "Specifies a property that must have a value whenever the property path has a value, and must have no value whenever the property path has no value." ; + rdfs:range rdf:Property . + +dash:hasClass a sh:SPARQLAskValidator ; + rdfs:label "has class" ; + sh:ask """ + ASK { + $value rdf:type/rdfs:subClassOf* $class . + } + """ ; + sh:message "Value does not have class {$class}" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxExclusive a sh:SPARQLAskValidator ; + rdfs:label "has max exclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than (<) the provided ?maxExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value < $maxExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxInclusive a sh:SPARQLAskValidator ; + rdfs:label "has max inclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than or equal to (<=) the provided ?maxInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value <= $maxInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxLength a sh:SPARQLAskValidator ; + rdfs:label "has max length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given maximum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) <= $maxLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinExclusive a sh:SPARQLAskValidator ; + rdfs:label "has min exclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than (>) the provided ?minExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value > $minExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinInclusive a sh:SPARQLAskValidator ; + rdfs:label "has min inclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than or equal to (>=) the provided ?minInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value >= $minInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinLength a sh:SPARQLAskValidator ; + rdfs:label "has min length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given minimum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) >= $minLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasNodeKind a sh:SPARQLAskValidator ; + rdfs:label "has node kind" ; + rdfs:comment "Checks whether a given node (?value) has a given sh:NodeKind (?nodeKind). For example, sh:hasNodeKind(42, sh:Literal) = true." ; + sh:ask """ + ASK { + FILTER ((isIRI($value) && $nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral ) ) || + (isLiteral($value) && $nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral ) ) || + (isBlank($value) && $nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral ) )) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasPattern a sh:SPARQLAskValidator ; + rdfs:label "has pattern" ; + rdfs:comment "Checks whether the string representation of a given node (?value) matches a given regular expression (?pattern). Returns false if the value is a blank node." ; + sh:ask "ASK { FILTER (!isBlank($value) && IF(bound($flags), regex(str($value), $pattern, $flags), regex(str($value), $pattern))) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasRootClass a sh:SPARQLAskValidator ; + rdfs:label "has root class" ; + sh:ask """ASK { + $value rdfs:subClassOf* $rootClass . +}""" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasStem a sh:SPARQLAskValidator ; + rdfs:label "has stem" ; + rdfs:comment "Checks whether a given node is an IRI starting with a given stem." ; + sh:ask "ASK { FILTER (isIRI($value) && STRSTARTS(str($value), $stem)) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasValueIn a rdf:Property ; + rdfs:label "has value in" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be a member of the given list." ; + rdfs:range rdf:List . + +dash:hasValueWithClass a rdf:Property ; + rdfs:label "has value with class" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be an instance of a given class." ; + rdfs:range rdfs:Class . + +dash:indexed a rdf:Property ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:isIn a sh:SPARQLAskValidator ; + rdfs:label "is in" ; + sh:ask """ + ASK { + GRAPH $shapesGraph { + $in (rdf:rest*)/rdf:first $value . + } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isLanguageIn a sh:SPARQLAskValidator ; + rdfs:label "is language in" ; + sh:ask """ + ASK { + BIND (lang($value) AS ?valueLang) . + FILTER EXISTS { + GRAPH $shapesGraph { + $languageIn (rdf:rest*)/rdf:first ?lang . + FILTER (langMatches(?valueLang, ?lang)) + } } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isSubClassOf-subclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) subclass." ; + sh:name "subclass" ; + sh:path dash:subclass . + +dash:isSubClassOf-superclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) superclass." ; + sh:name "superclass" ; + sh:order 1.0 ; + sh:path dash:superclass . + +dash:reifiableBy a rdf:Property ; + rdfs:label "reifiable by" ; + rdfs:comment "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Use dash:None to indicate that no reification should be permitted." ; + rdfs:domain sh:PropertyShape ; + rdfs:range sh:NodeShape . + +dash:rootClass a rdf:Property ; + rdfs:label "root class" . + +dash:singleLine a rdf:Property ; + rdfs:label "single line" ; + rdfs:range xsd:boolean . + +dash:stem a rdf:Property ; + rdfs:label "stem"@en ; + rdfs:comment "Specifies a string value that the IRI of the value nodes must start with."@en ; + rdfs:range xsd:string . + +dash:subSetOf a rdf:Property ; + rdfs:label "sub set of" . + +dash:symmetric a rdf:Property ; + rdfs:label "symmetric" ; + rdfs:comment "True to declare that the associated property path is symmetric." . + +dash:uniqueValueForClass a rdf:Property ; + rdfs:label "unique value for class" . + +default3:ontology a owl:Ontology ; + owl:imports <https://unl.tetras-libre.fr/rdf/schema> . + +<http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> a unl:UW_Lexeme ; + rdfs:label "TRANSEC-NC" ; + unl:has_occurrence default3:occurence_TRANSEC-NC . + +<http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> a unl:UW_Lexeme ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:has_occurrence default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_occurrence default3:occurence_capacity-icl-volume-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> a unl:UW_Lexeme ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:has_occurrence default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_occurrence default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:has_occurrence default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_occurrence default3:occurence_mission-icl-assignment-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_occurrence default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> a unl:UW_Lexeme ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_occurrence default3:occurence_operator-icl-causal-agent-icl-person-- . + +<http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_occurrence default3:occurence_radio-channel-icl-communication-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_occurrence default3:occurence_system-icl-instrumentality-icl-thing-- . + +rdf:object a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:object . + +rdf:predicate a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:predicate . + +rdf:subject a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:subject . + +rdfs:isDefinedBy a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:isDefinedBy, + rdfs:seeAlso . + +sh:SPARQLExecutable dash:abstract true . + +sh:Validator dash:abstract true . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +cts:batch_execution a owl:Class, + sh:NodeShape ; + rdfs:label "batch execution" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:bypass-reification, + cts:complement-composite-class, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-domain-of-relation-property, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:compute-range-of-relation-property, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:define-uw-id, + cts:extend-atom-list-net, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:link-instances-by-relation-property, + cts:link-to-scope-entry, + cts:specify-axis-of-atom-list-net, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:old_add-event a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. + # Object Property + ?newEventObjectPropertyUri a owl:ObjectProperty. + ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. + ?newEventObjectPropertyUri rdfs:label ?verbConcept. + ?newEventObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: entity + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). + # URI (for object property) + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?eventObjectPropertyUri). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_add-state-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. + ?newStatePropertyUri rdfs:label ?statePropertyLabel. + ?newStatePropertyUri sys:from_structure ?req. + # Object Property + ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. + ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. + ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. + ?newStatePropertyObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: state property + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:is_class ?statePropertyClass. + BIND (concat( ?targetOntologyURI, ?statePropertyClass) AS ?c1). + BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). + BIND (uri( ?c1) AS ?statePropertyClassUri). + BIND (uri(?c2) AS ?newStatePropertyUri). + # URI (for object property) + sys:State_Property sys:has_object_property ?statePropertyObjectProperty. + BIND (concat( ?targetOntologyURI, ?statePropertyObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). + BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_compose-agt-verb-obj-as-simple-event a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event +CONSTRUCT { + # Net: Event + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:Event. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:action_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: agt(net1, net2) et obj(net1, net3) + ?uw1 unl:agt ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:event rdfs:label ?eventLabel. + BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compose-aoj-verb-obj-as-simple-state-property a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property +CONSTRUCT { + # Net: State Property + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:State_Property. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:attributive_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: aoj(net1, net2) et obj(net1, net3) + ?uw1 unl:aoj ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for State Property Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:state_property rdfs:label ?statePropertyLabel. + BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compute-domain-range-of-event-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?newEventObjectPropertyUri rdfs:domain ?domainClass. + ?newEventObjectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.332 . + +cts:old_compute-domain-range-of-state-property-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?objectPropertyUri rdfs:domain ?domainClass. + ?objectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:has_object_property ?objectPropertyRef. + BIND (concat( ?targetOntologyURI, ?objectPropertyRef) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +}""" ; + sh:order 0.332 . + +unl:has_occurrence a owl:ObjectProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range unl:UW_Occurrence ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_occurrence_of . + +unl:is_occurrence_of a owl:ObjectProperty ; + rdfs:domain unl:UW_Occurrence ; + rdfs:range unl:UW_Lexeme ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:has_occurrence . + +unl:is_scope_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Scope ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_source_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_superstructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_target_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +dash:PropertyAutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Property auto-complete editor" ; + rdfs:comment "An editor for properties that are either defined as instances of rdf:Property or used as IRI values of sh:path. The component uses auto-complete to find these properties by their rdfs:labels or sh:names." . + +dash:PropertyLabelViewer a dash:SingleViewer ; + rdfs:label "Property label viewer" ; + rdfs:comment "A viewer for properties that renders a hyperlink using the display label or sh:name, allowing users to either navigate to the rdf:Property resource or the property shape definition. Should be used in conjunction with PropertyAutoCompleteEditor." . + +dash:Widget a dash:ShapeClass ; + rdfs:label "Widget" ; + dash:abstract true ; + rdfs:comment "Base class of user interface components that can be used to display or edit value nodes." ; + rdfs:subClassOf rdfs:Resource . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_system-icl-instrumentality-icl-thing-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person-- a unl:ben ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- a unl:obj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC a unl:mod ; + unl:has_source default3:occurence_capacity-icl-volume-icl-thing-- ; + unl:has_target default3:occurence_TRANSEC-NC . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- a unl:agt ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:man ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- a unl:res ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:has_target default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:operator-icl-causal-agent-icl-person--_mod_scope-01 a unl:mod ; + unl:has_source default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_target default3:scope_01 . + +<http://unsel.rdf-unl.org/uw_lexeme#document> a unl:UNL_Document ; + unl:is_superstructure_of default3:sentence_0 . + +rdfs:seeAlso a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:seeAlso . + +sh:Function dash:abstract true . + +sh:Shape dash:abstract true . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +cts:append-domain-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible domain, actor to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_source ?sourceObject. + ?net1 net:has_possible_domain ?domainClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): actor of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?sourceObject. + # condition: agt(net1, net2) + ?uw1 ( unl:agt | unl:aoj ) ?uw2. + # Possible Domain + { ?sourceObject net:has_concept ?domainClass. } + UNION + { ?sourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_concept ?domainClass. } +}""" ; + sh:order 2.42 . + +cts:append-range-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible range, target to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_target ?targetObject. + ?net1 net:has_possible_range ?rangeClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): target of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?targetObject. + # condition: agt(net1, net2) + ?uw1 (unl:obj|unl:res) ?uw2. + # Possible Domain + { ?targetObject net:has_concept ?rangeClass. } + UNION + { ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. } +}""" ; + sh:order 2.42 . + +cts:bypass-reification a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Bypass reification (extension of UNL relations) +CONSTRUCT { + ?node1 ?unlRel ?node2. +} +WHERE { + ?rel unl:has_source ?node1. + ?rel unl:has_target ?node2. + ?rel a ?unlRel. +} """ ; + sh:order 1.1 . + +cts:compose-atom-with-list-by-mod-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and a list net (with distinct item classes) +CONSTRUCT { + # Object: Composite + ?newObject a net:Object. + ?newObject net:objectType net:composite. + ?newObject net:has_node ?uw1, ?uw3. + ?newObject net:has_mother_class ?net1Mother. + ?newObject net:has_parent_class ?net1Class. + ?newObject net:has_class ?subConcept. + ?newObject net:has_concept ?subConcept. + ?newObject net:has_feature ?net2Item. + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?newObject. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_mother_class ?net1Mother. + ?net1Object net:has_parent_class ?net1ParentClass. + ?net1Object net:has_class ?net1Class. + ?net1Object net:has_concept ?net1Concept. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:type ?listSubType. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass != ?net2ParentClass ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + BIND (concat( ?net2Concept, '_', ?net1Concept) AS ?subConcept). + # URI (for Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?objectRef, ?compositeLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.32 . + +cts:compose-atom-with-list-by-mod-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and an list net (with same item classes) +CONSTRUCT { + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?net2Item. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_parent_class ?net1ParentClass. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass = ?net2ParentClass ). + # Label: Id, subEntity + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.33 . + +cts:compute-class-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-class-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_mother_class_uri ?motherClassUri. + ?object net:has_parent_class_uri ?parentClassUri. + ?object net:has_class_uri ?objectClassUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_mother_class ?motherClass. + ?object net:has_parent_class ?parentClass. + ?object net:has_class ?objectClass. + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newClassRef ?newClassRef. + BIND (str(?motherClass) AS ?s1). + # TODO: BIND (concat( ?targetOntologyURI, ?motherClass) AS ?s1). + BIND (concat(?targetOntologyURI, ?parentClass) AS ?s2). + BIND (concat(?targetOntologyURI, ?newClassRef, ?objectClass) AS ?s3). + BIND (uri( ?s1) AS ?motherClassUri). + BIND (uri( ?s2) AS ?parentClassUri). + BIND (uri(?s3) AS ?objectClassUri). +} +VALUES ?objectType { + net:atom + net:composite +}""" ; + sh:order 2.91 . + +cts:compute-instance-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-instance-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_instance_uri ?objectInstanceUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:has_parent_class ?parentClass. + ?object net:has_instance ?objectInstance. + # URI (for classes and instance) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat( ?targetOntologyURI, ?parentClass) AS ?s1). + BIND (concat(?s1, '#', ?objectInstance) AS ?s2). + BIND (uri(?s2) AS ?objectInstanceUri). +}""" ; + sh:order 2.92 . + +cts:compute-property-uri-of-relation-object a sh:SPARQLRule ; + rdfs:label "compute-property-uri-of-relation-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_property_uri ?objectPropertyUri. +} +WHERE { + # Object of type Relation + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_parent_property ?parentProperty. + ?object net:has_concept ?objectConcept. + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newPropertyRef ?newPropertyRef. + ?parentProperty sys:has_reference ?relationReference. + BIND (concat( ?targetOntologyURI, ?newPropertyRef, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?objectConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +} +VALUES ?objectType { + net:relation +}""" ; + sh:order 2.91 . + +cts:create-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create Atom Net (entity) +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:atom. + ?newObject net:has_node ?uw1. + ?newObject net:has_mother_class ?atomMother. + ?newObject net:has_parent_class ?atomClass. + ?newObject net:has_class ?concept1. + ?newObject net:has_concept ?concept1. + # Net + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf ?atomMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_atom ?newObject. +} +WHERE { + # Atom Description (from System Ontology) + ?atomMother rdfs:subClassOf* sys:Structure. + ?atomMother sys:is_class ?atomClass. + ?atomMother seedSchema:has_uw-regex-seed ?restriction. + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Filter on label + ?uw1 rdfs:label ?uw1Label. + FILTER ( regex(str(?uw1Label),str(?restriction)) ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?concept1). + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?objectRef, ?atomLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Atom Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + BIND (concat( ?netURI, ?classReference, '-', ?atomClass, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.11 . + +cts:create-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create relation net +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:relation. + ?newObject net:has_node ?uw1. + ?newObject net:has_parent_property ?relationMother. + ?newObject net:has_concept ?verbConcept. + # create: Relation Net + ?newNet a net:Instance. + ?newNet net:type net:relation. + ?newNet net:relationOf ?relationMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_relation ?newObject. +} +WHERE { + # Relation Description (from System Ontology) + ?targetProperty rdfs:subPropertyOf* sys:Relation. + ?targetProperty sys:has_mother_property ?relationMother. + ?targetProperty sys:has_reference ?relationReference. + # -- old --- ?targetProperty sys:has_restriction_on_class ?classRestriction. + ?targetProperty seedSchema:has_class-restriction-seed ?classRestriction. + # Atom Net (net1): restricted net according to its atom category (atomOf) + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?classRestriction. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Verb Actor + ?net1 net:has_atom ?verbObject. + ?verbObject net:has_mother_class ?verbMother. + ?verbObject net:has_parent_class ?verbParentClass. + ?verbObject net:has_concept ?verbConcept. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:relation rdfs:label ?relationLabel. + BIND (concat( ?netURI, ?objectRef, ?relationLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Property sys:has_reference ?propertyReference. + BIND (concat( ?netURI, ?propertyReference, '-', ?relationReference, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.41 . + +cts:create-unary-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create an unary Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:unary_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw0 unl:mod ?uw1. + FILTER NOT EXISTS { ?uw1 (unl:and|unl:or) ?uw2 } + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?classReference, '-', ?listLabel, '-', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:define-uw-id a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Define an ID for each UW (occurrence) +CONSTRUCT { + ?uw1 unl:has_id ?uwId. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Label(s) / URI + ?req unl:has_id ?reqId. + ?uw1 rdfs:label ?uw1Label. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?rawConcept). + BIND (REPLACE(?rawConcept, " ", "-") AS ?concept1) + BIND (strafter(str(?uw1), "---") AS ?numOcc). + BIND (concat( ?reqId, '_', ?concept1, ?numOcc) AS ?uwId). +} """ ; + sh:order 1.3 . + +cts:extend-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Extend an Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:has_node ?uw2. + ?net1 net:has_item ?object2. +} +WHERE { + # Net1: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # extension: disjunction of UW + ?uw1 (unl:or|unl:and) ?uw2. + # Net2: Atom + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?object2. +}""" ; + sh:order 2.22 . + +cts:init-conjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a conjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:conjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:and ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:init-disjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a disjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:disjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:or ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:instantiate-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate atom net +CONSTRUCT { + # Object: entity + ?atomObject1 net:has_instance ?instanceName. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?atomObject1. + # condition: agt/obj(uw0, uw1) + ?uw0 (unl:agt | unl:obj | unl:aoj) ?uw1. + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label: id, name + ?uw1 unl:has_id ?uw1Id. + BIND (?uw1Id AS ?instanceName). +}""" ; + sh:order 2.12 . + +cts:instantiate-composite-in-list-by-extension-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate composite in list by extension of instances from parent element +CONSTRUCT { + ?itemObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?itemObject. + # Filter + FILTER NOT EXISTS { ?itemObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.341 . + +cts:instantiate-composite-in-list-by-extension-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate entities in class list by extension of instances (2) +CONSTRUCT { + ?net2SubObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?net1SubObject. + ?net1SubObject net:has_concept ?sameEntity. + # net2: Another List + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_parent ?net2MainObject. + ?net2MainObject net:has_concept ?sameEntity. + ?net2 net:has_item ?net2SubObject. + # Filter + FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.342 . + +cts:link-to-scope-entry a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link UNL relation to scope entry +# (by connecting the source node of the scope to the entry node of the scope) +CONSTRUCT { + ?node1Occ ?unlRel ?node2Occ. +} +WHERE { + ?scope rdf:type unl:UNL_Scope. + ?node1Occ unl:is_source_of ?rel. + ?rel unl:has_target ?scope. + ?scope unl:is_scope_of ?scopeRel. + ?scopeRel unl:has_source ?node2Occ. + ?node2Occ unl:has_attribute ".@entry". + ?rel a ?unlRel. +} """ ; + sh:order 1.2 . + +cts:old_link-classes-by-relation-property a sh:SPARQLRule ; + rdfs:label "link-classes-by-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link two classes by relation property (according existence of domain and range) +CONSTRUCT { + # relation between domain/range classes + ?domainClassUri ?propertyUri ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?propertyUri rdfs:domain ?domainClass. + ?propertyUri rdfs:range ?rangeClass. + BIND (uri( ?domainClass) AS ?domainClassUri). + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 0.33 . + +cts:specify-axis-of-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Specify axis of Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:listBy ?unlRel. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Net: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_node ?uw1. + # selection: target UW of modifier (mod) + ?uw0 ?unlRel ?uw1. + FILTER NOT EXISTS { ?net1 net:has_node ?uw0 }. +}""" ; + sh:order 2.23 . + +cts:update-batch-execution-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:batch_execution sh:rule ?rule. +} +WHERE { + ?nodeShapes sh:rule ?rule. +} +VALUES ?nodeShapes { + cts:preprocessing + cts:net_extension + cts:generation +}""" ; + sh:order 1.09 . + +cts:update-generation-class-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:class_generation sh:rule ?rule. +} +WHERE { + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.1") ). } + UNION + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.2") ). } +}""" ; + sh:order 1.031 . + +cts:update-generation-relation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:relation_generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.3") ). +}""" ; + sh:order 1.032 . + +cts:update-generation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.") ). +}""" ; + sh:order 1.03 . + +cts:update-net-extension-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:net_extension sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"2.") ). +}""" ; + sh:order 1.02 . + +cts:update-preprocessing-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:preprocessing sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"1.") ). +}""" ; + sh:order 1.01 . + +<https://unl.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:imports <http://www.w3.org/2008/05/skos-xl> ; + owl:versionIRI unl:0.1 . + +<https://unl.tetras-libre.fr/rdf/schema#@indef> a owl:Class ; + rdfs:label "indef" ; + rdfs:subClassOf unl:specification ; + skos:definition "indefinite" . + +unl:UNLKB_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:UNL_Graph_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:animacy a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:degree a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:dur a owl:Class, + owl:ObjectProperty ; + rdfs:label "dur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "duration or co-occurrence"@en ; + skos:definition "The duration of an entity or event."@en ; + skos:example """John worked for five hours = dur(worked;five hours) +John worked hard the whole summer = dur(worked;the whole summer) +John completed the task in ten minutes = dur(completed;ten minutes) +John was reading while Peter was cooking = dur(John was reading;Peter was cooking)"""@en . + +unl:figure_of_speech a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:ins a owl:Class, + owl:ObjectProperty ; + rdfs:label "ins" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "instrument or method"@en ; + skos:definition "An inanimate entity or method that an agent uses to implement an event. It is the stimulus or immediate physical cause of an event."@en ; + skos:example """The cook cut the cake with a knife = ins(cut;knife) +She used a crayon to scribble a note = ins(used;crayon) +That window was broken by a hammer = ins(broken;hammer) +He solved the problem with a new algorithm = ins(solved;a new algorithm) +He solved the problem using an algorithm = ins(solved;using an algorithm) +He used Mathematics to solve the problem = ins(used;Mathematics)"""@en . + +unl:per a owl:Class, + owl:ObjectProperty ; + rdfs:label "per" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "proportion, rate, distribution, measure or basis for a comparison"@en ; + skos:definition "Used to indicate a measure or quantification of an event."@en ; + skos:example """The course was split in two parts = per(split;in two parts) +twice a week = per(twice;week) +The new coat costs $70 = per(cost;$70) +John is more beautiful than Peter = per(beautiful;Peter) +John is as intelligent as Mary = per(intelligent;Mary) +John is the most intelligent of us = per(intelligent;we)"""@en . + +unl:relative_tense a owl:Class ; + rdfs:subClassOf unl:time . + +unl:superlative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:time a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:unlAnnotationProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf unl:unlProperty . + +unl:unlDatatypeProperty a owl:DatatypeProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:Action a dash:ShapeClass ; + rdfs:label "Action" ; + dash:abstract true ; + rdfs:comment "An executable command triggered by an agent, backed by a Script implementation. Actions may get deactivated using sh:deactivated." ; + rdfs:subClassOf dash:Script, + sh:Parameterizable . + +dash:Editor a dash:ShapeClass ; + rdfs:label "Editor" ; + dash:abstract true ; + rdfs:comment "The class of widgets for editing value nodes." ; + rdfs:subClassOf dash:Widget . + +dash:ResourceAction a dash:ShapeClass ; + rdfs:label "Resource action" ; + dash:abstract true ; + rdfs:comment "An Action that can be executed for a selected resource. Such Actions show up in context menus once they have been assigned a sh:group." ; + rdfs:subClassOf dash:Action . + +dash:Viewer a dash:ShapeClass ; + rdfs:label "Viewer" ; + dash:abstract true ; + rdfs:comment "The class of widgets for viewing value nodes." ; + rdfs:subClassOf dash:Widget . + +default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- a unl:or ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_CDC-icl-object-icl-place-icl-thing--- ; + unl:has_target default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- a unl:mod ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- ; + unl:has_target default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +rdf:first a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:subPropertyOf rdf:first . + +sh:Parameterizable dash:abstract true . + +sh:Target dash:abstract true . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +unl:Universal_Word a owl:Class ; + rdfs:label "Universal Word" ; + rdfs:comment """For details abour UWs, see : +http://www.unlweb.net/wiki/Universal_Words + +Universal Words, or simply UW's, are the words of UNL, and correspond to nodes - to be interlinked by Universal Relations and specified by Universal Attributes - in a UNL graph.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:comparative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:gender a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:information_structure a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:nominal_attributes a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:person a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:place a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:polarity a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:position a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlProperty a rdf:Property . + +default3:occurence_ARS-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_ARS" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_TRANSEC-NC a unl:UW_Occurrence ; + rdfs:label "TRANSEC-NC" ; + unl:has_attribute ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_TRANSEC-NC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC . + +default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- a unl:UW_Occurrence ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:aoj default3:occurence_mission-icl-assignment-icl-thing-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_include" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> ; + unl:is_source_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_attribute ".@entry", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operational_manager" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> ; + unl:is_source_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:mod default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +default3:occurence_radio-channel-icl-communication-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_radio_channel" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_system-icl-instrumentality-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_system" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +cts:add-conjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-conjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:intersectionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:and ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:add-disjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-disjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:unionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:or ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:complement-composite-class a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Complement composite classes with feature relation +CONSTRUCT { + # Complement with feature relation + ?compositeClassUri sys:has_feature ?featureUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + # -- Item + ?net1 net:has_item ?itemObject. + ?itemObject net:has_class_uri ?compositeClassUri. + ?itemObject net:has_feature ?featureObject. + # -- Feature + ?featureObject a net:Object. + ?featureObject net:has_class_uri ?featureUri. +}""" ; + sh:order 3.22 . + +cts:generate-atom-class a sh:SPARQLRule ; + rdfs:label "add-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Atom Class in Target Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?atomConcept. + ?newClassUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_parent_class_uri ?parentUri. + ?atomObject1 net:has_class_uri ?newClassUri. + ?atomObject1 net:has_concept ?atomConcept. + # Filter: atom not present in a composite list + FILTER NOT EXISTS { + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_item ?atomObject1. + } +}""" ; + sh:order 3.1 . + +cts:generate-atom-instance a sh:SPARQLRule ; + rdfs:label "add-entity" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate atom instance in System Ontology +CONSTRUCT { + # Instantiation + ?newInstanceUri a ?classUri. + ?newInstanceUri rdfs:label ?atomInstance. + ?newInstanceUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_class_uri ?classUri. + ?atomObject1 net:has_instance ?atomInstance. + ?atomObject1 net:has_instance_uri ?newInstanceUri. + # Filter: entity not present in a class list + FILTER NOT EXISTS { ?net2 net:has_subClass ?atomConcept} +}""" ; + sh:order 3.1 . + +cts:generate-composite-class-from-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Composite Class in Ontology (from Composite List net) +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?compositeConcept. + ?newClassUri sys:from_structure ?req. + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. + ?instanceUri sys:from_structure ?req. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?net1 net:has_item ?compositeObject. + ?compositeObject net:has_class_uri ?newClassUri. + ?compositeObject net:has_concept ?compositeConcept. +}""" ; + sh:order 3.21 . + +unl:lexical_category a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:voice a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +default3:occurence_CDC-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_CDC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> ; + unl:is_source_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:or default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- a unl:UW_Occurrence ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:aoj default3:occurence_system-icl-instrumentality-icl-thing-- ; + unl:ben default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_attribute ".@entry", + ".@obligation", + ".@present" ; + unl:has_id "SRSA-IP_STB_PHON_00100_allow" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> ; + unl:is_source_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:occurence_capacity-icl-volume-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_capacity" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> ; + unl:is_source_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:mod default3:occurence_TRANSEC-NC . + +default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:UW_Occurrence ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_id "SRSA-IP_STB_PHON_00100_define" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> ; + unl:is_source_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:obj default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:scope_01 a unl:UNL_Scope ; + rdfs:label "01" ; + unl:is_scope_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing---, + default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 . + +rdf:rest a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:range rdf:List ; + rdfs:subPropertyOf rdf:rest . + +sh:AbstractResult dash:abstract true . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +<https://unl.tetras-libre.fr/rdf/schema#@pl> a owl:Class ; + rdfs:label "pl" ; + rdfs:subClassOf unl:quantification ; + skos:definition "plural" . + +unl:absolute_tense a owl:Class ; + rdfs:subClassOf unl:time . + +default3:occurence_mission-icl-assignment-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_mission" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +cts:compute-domain-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-domain-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Domain of Relation Property +CONSTRUCT { + # update Relation Property: add domain + ?newPropertyUri rdfs:domain ?domainClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1. + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + BIND (uri( ?domainClass) AS ?domainClassUri). +}""" ; + sh:order 3.32 . + +cts:compute-range-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-range-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Range of Relation Property +CONSTRUCT { + # update Relation Property: add range + ?newPropertyUri rdfs:range ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 3.32 . + +cts:generate-event-class a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Event Class in Target Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_concept ?sourceConcept. + # -- Target Object + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_concept ?targetConcept. + # Label: event + BIND (concat(?sourceConcept, '-', ?relationConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). +}""" ; + sh:order 3.31 . + +cts:generate-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Relation Property in Target Ontology +CONSTRUCT { + # update: Relation Property + ?newPropertyUri a owl:ObjectProperty. + ?newPropertyUri rdfs:subPropertyOf ?parentProperty. + ?newPropertyUri rdfs:label ?relationConcept. + ?newPropertyUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. +}""" ; + sh:order 3.31 . + +cts:link-instances-by-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +CONSTRUCT { + ?sourceInstanceUri ?newPropertyUri ?targetInstanceUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- Target Object + ?net1 net:has_target ?targetObject. + ?targetObject net:has_instance_uri ?targetInstanceUri. +}""" ; + sh:order 3.33 . + +unl:positive a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:syntactic_structures a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:tim a owl:Class, + owl:ObjectProperty ; + rdfs:label "tim" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "time"@en ; + skos:definition "The temporal placement of an entity or event."@en ; + skos:example """The whistle will sound at noon = tim(sound;noon) +John came yesterday = tim(came;yesterday)"""@en . + +default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- a unl:UW_Occurrence ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:agt default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_create" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> ; + unl:is_source_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:man default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:res default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:occurence_operator-icl-causal-agent-icl-person-- a unl:UW_Occurrence ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_attribute ".@indef", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operator" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> ; + unl:is_source_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- ; + unl:mod default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:scope_01 . + +unl:conventions a owl:Class ; + rdfs:subClassOf unl:syntactic_structures . + +unl:social_deixis a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:Script a dash:ShapeClass ; + rdfs:label "Script" ; + rdfs:comment "An executable unit implemented in one or more languages such as JavaScript." ; + rdfs:subClassOf rdfs:Resource . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +unl:other a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:plc a owl:Class, + owl:ObjectProperty ; + rdfs:label "plc" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "place"@en ; + skos:definition "The location or spatial orientation of an entity or event."@en ; + skos:example """John works here = plc(work;here) +John works in NY = plc(work;NY) +John works in the office = plc(work;office) +John is in the office = plc(John;office) +a night in Paris = plc(night;Paris)"""@en . + +unl:register a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:specification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:UNL_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Structure . + +dash:TestCase a dash:ShapeClass ; + rdfs:label "Test case" ; + dash:abstract true ; + rdfs:comment "A test case to verify that a (SHACL-based) feature works as expected." ; + rdfs:subClassOf rdfs:Resource . + +<https://unl.tetras-libre.fr/rdf/schema#@def> a owl:Class ; + rdfs:label "def" ; + rdfs:subClassOf unl:specification ; + skos:definition "definite" . + +unl:direction a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:SingleViewer a dash:ShapeClass ; + rdfs:label "Single viewer" ; + rdfs:comment "A viewer for a single value." ; + rdfs:subClassOf dash:Viewer . + +unl:Schemes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:emotions a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:ConstraintReificationShape a sh:NodeShape ; + rdfs:label "Constraint reification shape" ; + rdfs:comment "Can be used to attach sh:severity and sh:messages to individual constraints using reification." ; + sh:property dash:ConstraintReificationShape-message, + dash:ConstraintReificationShape-severity . + +() a rdf:List, + rdfs:Resource . + +cts:Transduction_Schemes a owl:Class, + sh:NodeShape ; + rdfs:label "Transduction Schemes" ; + rdfs:subClassOf owl:Thing . + +unl:UNL_Structure a owl:Class ; + rdfs:label "UNL Structure" ; + rdfs:comment "Sentences expressed in UNL can be organized in paragraphs and documents" . + +unl:quantification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:SingleEditor a dash:ShapeClass ; + rdfs:label "Single editor" ; + rdfs:comment "An editor for individual value nodes." ; + rdfs:subClassOf dash:Editor . + +default3:sentence_0 a unl:UNL_Sentence ; + rdfs:label """The system shall allow an operator (operational manager of the CDC or ARS) to create a mission with a radio channel by defining the following parameters: +- radio channel wording, +- role associated with the radio channel, +- work area, +- frequency, +- TRANSEC capacity, +- for each center lane: +o name of the radio centre, +o order number of the radio centre, +- mission wording"""@en, + """Le système doit permettre à un opérateur (gestionnaire opérationnel du CDC ou de l'ARS) de créer une mission comportant une voie radio en définissant les paramètres suivants: +• libellé de la voie radio, +• rôle associé à la voie radio, +• zone de travail, +• fréquence, +• capacité TRANSEC, +• pour chaque voie centre: +o libellé du centre radio, +o numéro d'ordre du centre radio, +• libellé de la mission"""@fr ; + skos:altLabel """[S:1] +aoj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,system(icl>instrumentality(icl>thing)).@def.@singular) +ben(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +mod(operator(icl>causal_agent(icl>person)).@indef.@male.@singular,:01.@parenthesis) +mod:01(operational_manager(equ>director,icl>administrator(icl>thing)).@entry.@male.@singular,CDC(icl>object(icl>place(icl>thing))).@def.@singular) +or:01(CDC(icl>object(icl>place(icl>thing))).@def.@singular,ARS(icl>object(icl>place(icl>thing))).@def.@singular) +obj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,create(agt>thing,icl>make(icl>do),obj>uw)) +agt(create(agt>thing,icl>make(icl>do),obj>uw),operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +res(create(agt>thing,icl>make(icl>do),obj>uw),mission(icl>assignment(icl>thing)).@indef.@singular) +aoj(include(aoj>thing,icl>contain(icl>be),obj>thing),mission(icl>assignment(icl>thing)).@indef.@singular) +obj(include(aoj>thing,icl>contain(icl>be),obj>thing),radio_channel(icl>communication(icl>thing)).@indef.@singular) +man(create(agt>thing,icl>make(icl>do),obj>uw),define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)) +obj(define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing),capacity(icl>volume(icl>thing)).@def.@singular) +mod(capacity(icl>volume(icl>thing)).@def.@singular,TRANSEC-NC.@singular) + +[/S]""" ; + unl:has_id "SRSA-IP_STB_PHON_00100" ; + unl:has_index <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_substructure_of <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_superstructure_of default3:occurence_ARS-icl-object-icl-place-icl-thing---, + default3:occurence_CDC-icl-object-icl-place-icl-thing---, + default3:occurence_TRANSEC-NC, + default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-, + default3:occurence_capacity-icl-volume-icl-thing--, + default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw-, + default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing-, + default3:occurence_mission-icl-assignment-icl-thing--, + default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:occurence_operator-icl-causal-agent-icl-person--, + default3:occurence_radio-channel-icl-communication-icl-thing--, + default3:occurence_system-icl-instrumentality-icl-thing--, + default3:scope_01 . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +unl:aspect a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Tropes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:location a owl:Class ; + rdfs:subClassOf unl:place . + +unl:Universal_Attribute a rdfs:Datatype, + owl:Class ; + rdfs:label "Universal Attribute" ; + rdfs:comment """More informations about Universal Attributes here : +http://www.unlweb.net/wiki/Universal_Attributes + +Classes in this hierarchy are informative. +Universal attributes must be expressed as strings (label of the attribute) with datatype :Universal_Attribute. + +Universal Attributes are arcs linking a node to itself. In opposition to Universal Relations, they correspond to one-place predicates, i.e., functions that take a single argument. In UNL, attributes have been normally used to represent information conveyed by natural language grammatical categories (such as tense, mood, aspect, number, etc). The set of attributes, which is claimed to be universal, is defined in the UNL Specs and is not open to frequent additions.""" ; + rdfs:subClassOf unl:UNL_Structure ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( ".@1" ".@2" ".@3" ".@ability" ".@about" ".@above" ".@according_to" ".@across" ".@active" ".@adjective" ".@adverb" ".@advice" ".@after" ".@again" ".@against" ".@agreement" ".@all" ".@alliteration" ".@almost" ".@along" ".@also" ".@although" ".@among" ".@anacoluthon" ".@anadiplosis" ".@anaphora" ".@anastrophe" ".@and" ".@anger" ".@angle_bracket" ".@antanaclasis" ".@anterior" ".@anthropomorphism" ".@anticlimax" ".@antimetabole" ".@antiphrasis" ".@antithesis" ".@antonomasia" ".@any" ".@apposition" ".@archaic" ".@around" ".@as" ".@as.@if" ".@as_far_as" ".@as_of" ".@as_per" ".@as_regards" ".@as_well_as" ".@assertion" ".@assonance" ".@assumption" ".@asyndeton" ".@at" ".@attention" ".@back" ".@barring" ".@because" ".@because_of" ".@before" ".@behind" ".@belief" ".@below" ".@beside" ".@besides" ".@between" ".@beyond" ".@both" ".@bottom" ".@brace" ".@brachylogia" ".@but" ".@by" ".@by_means_of" ".@catachresis" ".@causative" ".@certain" ".@chiasmus" ".@circa" ".@climax" ".@clockwise" ".@colloquial" ".@command" ".@comment" ".@concerning" ".@conclusion" ".@condition" ".@confirmation" ".@consent" ".@consequence" ".@consonance" ".@contact" ".@contentment" ".@continuative" ".@conviction" ".@decision" ".@deduction" ".@def" ".@desire" ".@despite" ".@determination" ".@dialect" ".@disagreement" ".@discontentment" ".@dissent" ".@distal" ".@double_negative" ".@double_parenthesis" ".@double_quote" ".@doubt" ".@down" ".@dual" ".@due_to" ".@during" ".@dysphemism" ".@each" ".@either" ".@ellipsis" ".@emphasis" ".@enough" ".@entire" ".@entry" ".@epanalepsis" ".@epanorthosis" ".@equal" ".@equivalent" ".@euphemism" ".@even" ".@even.@if" ".@except" ".@except.@if" ".@except_for" ".@exclamation" ".@excluding" ".@exhortation" ".@expectation" ".@experiential" ".@extra" ".@failing" ".@familiar" ".@far" ".@fear" ".@female" ".@focus" ".@following" ".@for" ".@from" ".@front" ".@future" ".@generic" ".@given" ".@habitual" ".@half" ".@hesitation" ".@hope" ".@hyperbole" ".@hypothesis" ".@if" ".@if.@only" ".@imperfective" ".@in" ".@in_accordance_with" ".@in_addition_to" ".@in_case" ".@in_case_of" ".@in_front_of" ".@in_place_of" ".@in_spite_of" ".@inceptive" ".@inchoative" ".@including" ".@indef" ".@inferior" ".@inside" ".@instead_of" ".@intention" ".@interrogation" ".@intimate" ".@invitation" ".@irony" ".@iterative" ".@jargon" ".@judgement" ".@least" ".@left" ".@less" ".@like" ".@literary" ".@majority" ".@male" ".@maybe" ".@medial" ".@metaphor" ".@metonymy" ".@minority" ".@minus" ".@more" ".@most" ".@multal" ".@narrative" ".@near" ".@near_to" ".@necessity" ".@neither" ".@neutral" ".@no" ".@not" ".@notwithstanding" ".@noun" ".@obligation" ".@of" ".@off" ".@on" ".@on_account_of" ".@on_behalf_of" ".@on_top_of" ".@only" ".@onomatopoeia" ".@opinion" ".@opposite" ".@or" ".@ordinal" ".@other" ".@outside" ".@over" ".@owing_to" ".@own" ".@oxymoron" ".@pace" ".@pain" ".@paradox" ".@parallelism" ".@parenthesis" ".@paronomasia" ".@part" ".@passive" ".@past" ".@paucal" ".@pejorative" ".@per" ".@perfect" ".@perfective" ".@periphrasis" ".@permission" ".@permissive" ".@persistent" ".@person" ".@pl" ".@pleonasm" ".@plus" ".@polite" ".@polyptoton" ".@polysyndeton" ".@possibility" ".@posterior" ".@prediction" ".@present" ".@presumption" ".@prior_to" ".@probability" ".@progressive" ".@prohibition" ".@promise" ".@prospective" ".@proximal" ".@pursuant_to" ".@qua" ".@quadrual" ".@recent" ".@reciprocal" ".@reflexive" ".@regarding" ".@regardless_of" ".@regret" ".@relative" ".@relief" ".@remote" ".@repetition" ".@request" ".@result" ".@reverential" ".@right" ".@round" ".@same" ".@save" ".@side" ".@since" ".@single_quote" ".@singular" ".@slang" ".@so" ".@speculation" ".@speech" ".@square_bracket" ".@subsequent_to" ".@such" ".@suggestion" ".@superior" ".@surprise" ".@symploce" ".@synecdoche" ".@synesthesia" ".@taboo" ".@terminative" ".@than" ".@thanks_to" ".@that_of" ".@thing" ".@threat" ".@through" ".@throughout" ".@times" ".@title" ".@to" ".@top" ".@topic" ".@towards" ".@trial" ".@tuple" ".@under" ".@unit" ".@unless" ".@unlike" ".@until" ".@up" ".@upon" ".@verb" ".@versus" ".@vocative" ".@warning" ".@weariness" ".@wh" ".@with" ".@with_regard_to" ".@with_respect_to" ".@within" ".@without" ".@worth" ".@yes" ".@zoomorphism" ) ] . + +dash:ShapeClass a dash:ShapeClass ; + rdfs:label "Shape class" ; + dash:hidden true ; + rdfs:comment "A class that is also a node shape. This class can be used as rdf:type instead of the combination of rdfs:Class and sh:NodeShape." ; + rdfs:subClassOf rdfs:Class, + sh:NodeShape . + +dash:DASHJSLibrary a sh:JSLibrary ; + rdfs:label "DASH JavaScript library" ; + sh:jsLibrary dash:RDFQueryJSLibrary ; + sh:jsLibraryURL "http://datashapes.org/js/dash.js"^^xsd:anyURI . + +sh:SPARQLRule rdfs:subClassOf owl:Thing . + +unl:modality a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +<http://datashapes.org/dash> a owl:Ontology ; + rdfs:label "DASH Data Shapes Vocabulary" ; + rdfs:comment "DASH is a SHACL library for frequently needed features and design patterns. Almost all features in this library are 100% standards compliant and will work on any engine that fully supports SHACL." ; + owl:imports <http://topbraid.org/tosh>, + sh: ; + sh:declare [ sh:namespace "http://datashapes.org/dash#"^^xsd:anyURI ; + sh:prefix "dash" ], + [ sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; + sh:prefix "dcterms" ], + [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI ; + sh:prefix "xsd" ], + [ sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI ; + sh:prefix "owl" ], + [ sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI ; + sh:prefix "skos" ] . + +unl:manner a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Universal_Relation a owl:Class, + owl:ObjectProperty ; + rdfs:label "Universal Relation" ; + rdfs:comment """For detailled specifications about UNL Universal Relations, see : +http://www.unlweb.net/wiki/Universal_Relations + +Universal Relations, formerly known as "links", are labelled arcs connecting a node to another node in a UNL graph. They correspond to two-place semantic predicates holding between two Universal Words. In UNL, universal relations have been normally used to represent semantic cases or thematic roles (such as agent, object, instrument, etc.) between UWs. The repertoire of universal relations is defined in the UNL Specs and it is not open to frequent additions. + +Universal Relations are organized in a hierarchy where lower nodes subsume upper nodes. The topmost level is the relation "rel", which simply indicates that there is a semantic relation between two elements. + +Universal Relations as Object Properties are used only in UNL Knowledge Bases. In UNL graphs, you must use the reified versions of those properties in order to specify the scopes (and not only the sources and targets).""" ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:UNL_Node ; + rdfs:subClassOf unl:UNL_Structure ; + rdfs:subPropertyOf skos:semanticRelation, + unl:unlObjectProperty ; + skos:altLabel "universal relation" ; + skos:definition "Simply indicates that there is a semantic relation (unspecified) between two elements. Use the sub-properties to specify a semantic relation." . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/DefaultTargetId-20230123/DefaultTargetId-shacl_net_extension.ttl b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_net_extension.ttl new file mode 100644 index 0000000000000000000000000000000000000000..facc58608f4ade2eec5196b1cca1459c6e4df5f7 --- /dev/null +++ b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_net_extension.ttl @@ -0,0 +1,7008 @@ +@base <http://DefaultTargetId/shacl_net_extension> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix cts: <https://tenet.tetras-libre.fr/transduction-schemes#> . +@prefix dash: <http://datashapes.org/dash#> . +@prefix default3: <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix skos: <http://www.w3.org/2004/02/skos/core#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix tosh: <http://topbraid.org/tosh#> . +@prefix unl: <https://unl.tetras-libre.fr/rdf/schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dash:ExecutionPlatform a rdfs:Class ; + rdfs:label "Execution platform" ; + rdfs:comment "An platform (such as TopBraid) that may have features needed to execute, for example, SPARQL queries." ; + rdfs:subClassOf rdfs:Resource . + +dash:ExploreAction a rdfs:Class ; + rdfs:label "Explore action" ; + rdfs:comment "An action typically showing up in an Explore section of a selected resource. Cannot make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:FailureResult a rdfs:Class ; + rdfs:label "Failure result" ; + rdfs:comment "A result representing a validation failure such as an unsupported recursion." ; + rdfs:subClassOf sh:AbstractResult . + +dash:FailureTestCaseResult a rdfs:Class ; + rdfs:label "Failure test case result" ; + rdfs:comment "Represents a failure of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:GraphUpdate a rdfs:Class ; + rdfs:label "Graph update" ; + rdfs:comment "A suggestion consisting of added and/or deleted triples, represented as rdf:Statements via dash:addedTriple and dash:deletedTriple." ; + rdfs:subClassOf dash:Suggestion . + +dash:PropertyRole a rdfs:Class, + sh:NodeShape ; + rdfs:label "Property role" ; + rdfs:comment "The class of roles that a property (shape) may take for its focus nodes." ; + rdfs:subClassOf rdfs:Resource . + +dash:SPARQLConstructTemplate a rdfs:Class ; + rdfs:label "SPARQL CONSTRUCT template" ; + rdfs:comment "Encapsulates one or more SPARQL CONSTRUCT queries that can be parameterized. Parameters will become pre-bound variables in the queries." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLConstructExecutable . + +dash:SPARQLSelectTemplate a rdfs:Class ; + rdfs:label "SPARQL SELECT template" ; + rdfs:comment "Encapsulates a SPARQL SELECT query that can be parameterized. Parameters will become pre-bound variables in the query." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLSelectExecutable . + +dash:SPARQLUpdateSuggestionGenerator a rdfs:Class ; + rdfs:label "SPARQL UPDATE suggestion generator" ; + rdfs:comment """A SuggestionGenerator based on a SPARQL UPDATE query (sh:update), producing an instance of dash:GraphUpdate. The INSERTs become dash:addedTriple and the DELETEs become dash:deletedTriple. The WHERE clause operates on the data graph with the pre-bound variables $focusNode, $predicate and $value, as well as the other pre-bound variables for the parameters of the constraint. + +In many cases, there may be multiple possible suggestions to fix a problem. For example, with sh:maxLength there are many ways to slice a string. In those cases, the system will first iterate through the result variables from a SELECT query (sh:select) and apply these results as pre-bound variables into the UPDATE query.""" ; + rdfs:subClassOf dash:SuggestionGenerator, + sh:SPARQLSelectExecutable, + sh:SPARQLUpdateExecutable . + +dash:ScriptFunction a rdfs:Class, + sh:NodeShape ; + rdfs:label "Script function" ; + rdfs:comment """Script functions can be used from SPARQL queries and will be injected into the generated prefix object (in JavaScript, for ADS scripts). The dash:js will be inserted into a generated JavaScript function and therefore needs to use the return keyword to produce results. These JS snippets can access the parameter values based on the local name of the sh:Parameter's path. For example ex:value can be accessed using value. + +SPARQL use note: Since these functions may be used from any data graph and any shapes graph, they must not rely on any API apart from what's available in the shapes graph that holds the rdf:type triple of the function itself. In other words, at execution time from SPARQL, the ADS shapes graph will be the home graph of the function's declaration.""" ; + rdfs:subClassOf dash:Script, + sh:Function . + +dash:ShapeScript a rdfs:Class ; + rdfs:label "Shape script" ; + rdfs:comment "A shape script contains extra code that gets injected into the API for the associated node shape. In particular you can use this to define additional functions that operate on the current focus node (the this variable in JavaScript)." ; + rdfs:subClassOf dash:Script . + +dash:SuccessResult a rdfs:Class ; + rdfs:label "Success result" ; + rdfs:comment "A result representing a successfully validated constraint." ; + rdfs:subClassOf sh:AbstractResult . + +dash:SuccessTestCaseResult a rdfs:Class ; + rdfs:label "Success test case result" ; + rdfs:comment "Represents a successful run of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:Suggestion a rdfs:Class ; + rdfs:label "Suggestion" ; + dash:abstract true ; + rdfs:comment "Base class of suggestions that modify a graph to \"fix\" the source of a validation result." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionGenerator a rdfs:Class ; + rdfs:label "Suggestion generator" ; + dash:abstract true ; + rdfs:comment "Base class of objects that can generate suggestions (added or deleted triples) for a validation result of a given constraint component." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionResult a rdfs:Class ; + rdfs:label "Suggestion result" ; + rdfs:comment "Class of results that have been produced as suggestions, not through SHACL validation. How the actual results are produced is up to implementers. Each instance of this class should have values for sh:focusNode, sh:resultMessage, sh:resultSeverity (suggested default: sh:Info), and dash:suggestion to point at one or more suggestions." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestCaseResult a rdfs:Class ; + rdfs:label "Test case result" ; + dash:abstract true ; + rdfs:comment "Base class for results produced by running test cases." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestEnvironment a rdfs:Class ; + rdfs:label "Test environment" ; + dash:abstract true ; + rdfs:comment "Abstract base class for test environments, holding information on how to set up a test case." ; + rdfs:subClassOf rdfs:Resource . + +rdf:Alt a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Alt, + rdfs:Container . + +rdf:Bag a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Bag, + rdfs:Container . + +rdf:List a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:List, + rdfs:Resource . + +rdf:Property a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf rdf:Property, + rdfs:Resource . + +rdf:Seq a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Seq, + rdfs:Container . + +rdf:Statement a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Statement, + rdfs:Resource . + +rdf:XMLLiteral a rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Class a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Resource . + +rdfs:Container a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Container . + +rdfs:ContainerMembershipProperty a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Property, + rdfs:ContainerMembershipProperty, + rdfs:Resource . + +rdfs:Datatype a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Literal a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Literal, + rdfs:Resource . + +rdfs:Resource a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:subClassOf rdfs:Class . + +owl:Ontology a rdfs:Class, + rdfs:Resource . + +unl:UNL_Document a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Documents, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UNL_Scope a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Scopes, see : +http://www.unlweb.net/wiki/Scope + +The UNL representation is a hyper-graph, which means that it may consist of several interlinked or subordinate sub-graphs. These sub-graphs are represented as hyper-nodes and correspond roughly to the concept of dependent (subordinate) clauses, i.e., groups of words that consist of a subject (explicit or implied) and a predicate and which are embedded in a larger structure (the independent clause). They are used to define the boundaries between complex semantic entities being represented.""" ; + rdfs:subClassOf unl:UNL_Graph_Node . + +unl:UNL_Sentence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For mor information about UNL Sentences, see : +http://www.unlweb.net/wiki/UNL_sentence + +UNL sentences, or UNL expressions, are sentences of UNL. They are hypergraphs made out of nodes (Universal Words) interlinked by binary semantic Universal Relations and modified by Universal Attributes. UNL sentences have been the basic unit of representation inside the UNL framework.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UW_Lexeme a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf skos:Concept, + unl:UNLKB_Node, + unl:Universal_Word . + +unl:UW_Occurrence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf unl:UNL_Graph_Node, + unl:Universal_Word . + +unl:agt a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "agt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "agent"@en ; + skos:definition "A participant in an action or process that provokes a change of state or location."@en ; + skos:example """John killed Mary = agt(killed;John) +Mary was killed by John = agt(killed;John) +arrival of John = agt(arrival;John)"""@en . + +unl:aoj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "aoj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "object of an attribute"@en ; + skos:definition "The subject of an stative verb. Also used to express the predicative relation between the predicate and the subject."@en ; + skos:example """John has two daughters = aoj(have;John) +the book belongs to Mary = aoj(belong;book) +the book contains many pictures = aoj(contain;book) +John is sad = aoj(sad;John) +John looks sad = aoj(sad;John)"""@en . + +unl:ben a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "ben" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "beneficiary"@en ; + skos:definition "A participant who is advantaged or disadvantaged by an event."@en ; + skos:example """John works for Peter = ben(works;Peter) +John gave the book to Mary for Peter = ben(gave;Peter)"""@en . + +unl:man a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "man" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "manner"@en ; + skos:definition "Used to indicate how the action, experience or process of an event is carried out."@en ; + skos:example """John bought the car quickly = man(bought;quickly) +John bought the car in equal payments = man(bought;in equal payments) +John paid in cash = man(paid;in cash) +John wrote the letter in German = man(wrote;in German) +John wrote the letter in a bad manner = man(wrote;in a bad manner)"""@en . + +unl:mod a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "mod" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "modifier"@en ; + skos:definition "A general modification of an entity."@en ; + skos:example """a beautiful book = mod(book;beautiful) +an old book = mod(book;old) +a book with 10 pages = mod(book;with 10 pages) +a book in hard cover = mod(book;in hard cover) +a poem in iambic pentameter = mod(poem;in iambic pentamenter) +a man in an overcoat = mod(man;in an overcoat)"""@en . + +unl:obj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "obj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "patient"@en ; + skos:definition "A participant in an action or process undergoing a change of state or location."@en ; + skos:example """John killed Mary = obj(killed;Mary) +Mary died = obj(died;Mary) +The snow melts = obj(melts;snow)"""@en . + +unl:or a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "or" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "disjunction"@en ; + skos:definition "Used to indicate a disjunction between two entities."@en ; + skos:example """John or Mary = or(John;Mary) +either John or Mary = or(John;Mary)"""@en . + +unl:res a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "res" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "result or factitive"@en ; + skos:definition "A referent that results from an entity or event."@en ; + skos:example """The cook bake a cake = res(bake;cake) +They built a very nice building = res(built;a very nice building)"""@en . + +<exec_instance> a <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_net_extension>, + <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_preprocessing> . + +dash:ActionTestCase a dash:ShapeClass ; + rdfs:label "Action test case" ; + rdfs:comment """A test case that evaluates a dash:Action using provided input parameters. Requires exactly one value for dash:action and will operate on the test case's graph (with imports) as both data and shapes graph. + +Currently only supports read-only actions, allowing the comparison of actual results with the expected results.""" ; + rdfs:subClassOf dash:TestCase . + +dash:AllObjects a dash:AllObjectsTarget ; + rdfs:label "All objects" ; + rdfs:comment "A reusable instance of dash:AllObjectsTarget." . + +dash:AllSubjects a dash:AllSubjectsTarget ; + rdfs:label "All subjects" ; + rdfs:comment "A reusable instance of dash:AllSubjectsTarget." . + +dash:AutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Auto-complete editor" ; + rdfs:comment "An auto-complete field to enter the label of instances of a class. This is the fallback editor for any URI resource if no other editors are more suitable." . + +dash:BlankNodeViewer a dash:SingleViewer ; + rdfs:label "Blank node viewer" ; + rdfs:comment "A Viewer for blank nodes, rendering as the label of the blank node." . + +dash:BooleanSelectEditor a dash:SingleEditor ; + rdfs:label "Boolean select editor" ; + rdfs:comment """An editor for boolean literals, rendering as a select box with values true and false. + +Also displays the current value (such as "1"^^xsd:boolean), but only allows to switch to true or false.""" . + +dash:ClosedByTypesConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Closed by types constraint component" ; + rdfs:comment "A constraint component that can be used to declare that focus nodes are \"closed\" based on their rdf:types, meaning that focus nodes may only have values for the properties that are explicitly enumerated via sh:property/sh:path in property constraints at their rdf:types and the superclasses of those. This assumes that the type classes are also shapes." ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosedByTypesNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Property is not among those permitted for any of the types" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Property {?path} is not among those permitted for any of the types" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this (?predicate AS ?path) ?value +WHERE { + FILTER ($closedByTypes) . + $this ?predicate ?value . + FILTER (?predicate != rdf:type) . + FILTER NOT EXISTS { + $this rdf:type ?type . + ?type rdfs:subClassOf* ?class . + GRAPH $shapesGraph { + ?class sh:property/sh:path ?predicate . + } + } +}""" ] ; + sh:parameter dash:ClosedByTypesConstraintComponent-closedByTypes . + +dash:CoExistsWithConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Co-exists-with constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that if the property path has any value then the given property must also have a value, and vice versa." ; + sh:message "Values must co-exist with values of {$coExistsWith}" ; + sh:parameter dash:CoExistsWithConstraintComponent-coExistsWith ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateCoExistsWith" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + { + FILTER (EXISTS { $this $PATH ?any } && NOT EXISTS { $this $coExistsWith ?any }) + } + UNION + { + FILTER (NOT EXISTS { $this $PATH ?any } && EXISTS { $this $coExistsWith ?any }) + } +}""" ] . + +dash:DateOrDateTime a rdf:List ; + rdfs:label "Date or date time" ; + rdf:first [ sh:datatype xsd:date ] ; + rdf:rest ( [ sh:datatype xsd:dateTime ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:date or xsd:dateTime." . + +dash:DatePickerEditor a dash:SingleEditor ; + rdfs:label "Date picker editor" ; + rdfs:comment "An editor for xsd:date literals, offering a calendar-like date picker." . + +dash:DateTimePickerEditor a dash:SingleEditor ; + rdfs:label "Date time picker editor" ; + rdfs:comment "An editor for xsd:dateTime literals, offering a calendar-like date picker and a time selector." . + +dash:DepictionRole a dash:PropertyRole ; + rdfs:label "Depiction" ; + rdfs:comment "Depiction properties provide images representing the focus nodes. Typical examples may be a photo of an animal or the map of a country." . + +dash:DescriptionRole a dash:PropertyRole ; + rdfs:label "Description" ; + rdfs:comment "Description properties should produce text literals that may be used as an introduction/summary of what a focus node does." . + +dash:DetailsEditor a dash:SingleEditor ; + rdfs:label "Details editor" ; + rdfs:comment "An editor for non-literal values, typically displaying a nested form where the values of the linked resource can be edited directly on the \"parent\" form. Implementations that do not support this (yet) could fall back to an auto-complete widget." . + +dash:DetailsViewer a dash:SingleViewer ; + rdfs:label "Details viewer" ; + rdfs:comment "A Viewer for resources that shows the details of the value using its default view shape as a nested form-like display." . + +dash:EnumSelectEditor a dash:SingleEditor ; + rdfs:label "Enum select editor" ; + rdfs:comment "A drop-down editor for enumerated values (typically based on sh:in lists)." . + +dash:FunctionTestCase a dash:ShapeClass ; + rdfs:label "Function test case" ; + rdfs:comment "A test case that verifies that a given SPARQL expression produces a given, expected result." ; + rdfs:subClassOf dash:TestCase . + +dash:GraphStoreTestCase a dash:ShapeClass ; + rdfs:label "Graph store test case" ; + rdfs:comment "A test case that can be used to verify that an RDF file could be loaded (from a file) and that the resulting RDF graph is equivalent to a given TTL file." ; + rdfs:subClassOf dash:TestCase . + +dash:HTMLOrStringOrLangString a rdf:List ; + rdfs:label "HTML or string or langString" ; + rdf:first [ sh:datatype rdf:HTML ] ; + rdf:rest ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either rdf:HTML, xsd:string or rdf:langString (in that order of preference)." . + +dash:HTMLViewer a dash:SingleViewer ; + rdfs:label "HTML viewer" ; + rdfs:comment "A Viewer for HTML encoded text from rdf:HTML literals, rendering as parsed HTML DOM elements. Also displays the language if the HTML has a lang attribute on its root DOM element." . + +dash:HasValueInConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value in constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be a member of a given list of nodes." ; + sh:message "At least one of the values must be in {$hasValueIn}" ; + sh:parameter dash:HasValueInConstraintComponent-hasValueIn ; + sh:propertyValidator [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + GRAPH $shapesGraph { + $hasValueIn rdf:rest*/rdf:first ?value . + } + } +}""" ] . + +dash:HasValueTarget a sh:SPARQLTargetType ; + rdfs:label "Has Value target" ; + rdfs:comment "A target type for all subjects where a given predicate has a certain object value." ; + rdfs:subClassOf sh:Target ; + sh:labelTemplate "All subjects where {$predicate} has value {$object}" ; + sh:parameter [ a sh:Parameter ; + sh:description "The value that is expected to be present." ; + sh:name "object" ; + sh:path dash:object ], + [ a sh:Parameter ; + sh:description "The predicate property." ; + sh:name "predicate" ; + sh:nodeKind sh:IRI ; + sh:path dash:predicate ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this $predicate $object . +}""" . + +dash:HasValueWithClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value with class constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be an instance of a given class." ; + sh:message "At least one of the values must be an instance of class {$hasValueWithClass}" ; + sh:parameter dash:HasValueWithClassConstraintComponent-hasValueWithClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueWithClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + ?value a ?type . + ?type rdfs:subClassOf* $hasValueWithClass . + } +}""" ] . + +dash:HyperlinkViewer a dash:SingleViewer ; + rdfs:label "Hyperlink viewer" ; + rdfs:comment """A Viewer for literals, rendering as a hyperlink to a URL. + +For literals it assumes the lexical form is the URL. + +This is often used as default viewer for xsd:anyURI literals. Unsupported for blank nodes.""" . + +dash:IDRole a dash:PropertyRole ; + rdfs:label "ID" ; + rdfs:comment "ID properties are short strings or other literals that identify the focus node among siblings. Examples may include social security numbers." . + +dash:IconRole a dash:PropertyRole ; + rdfs:label "Icon" ; + rdfs:comment """Icon properties produce images that are typically small and almost square-shaped, and that may be displayed in the upper left corner of a focus node's display. Values should be xsd:string or xsd:anyURI literals or IRI nodes pointing at URLs. Those URLs should ideally be vector graphics such as .svg files. + +Instances of the same class often have the same icon, and this icon may be computed using a sh:values rule or as sh:defaultValue.\r +\r +If the value is a relative URL then those should be resolved against the server that delivered the surrounding page.""" . + +dash:ImageViewer a dash:SingleViewer ; + rdfs:label "Image viewer" ; + rdfs:comment "A Viewer for URI values that are recognized as images by a browser, rendering as an image." . + +dash:IndexedConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Indexed constraint component" ; + rdfs:comment "A constraint component that can be used to mark property shapes to be indexed, meaning that each of its value nodes must carry a dash:index from 0 to N." ; + sh:parameter dash:IndexedConstraintComponent-indexed . + +dash:InferencingTestCase a dash:ShapeClass ; + rdfs:label "Inferencing test case" ; + rdfs:comment "A test case to verify whether an inferencing engine is producing identical results to those stored as expected results." ; + rdfs:subClassOf dash:TestCase . + +dash:InstancesSelectEditor a dash:SingleEditor ; + rdfs:label "Instances select editor" ; + rdfs:comment "A drop-down editor for all instances of the target class (based on sh:class of the property)." . + +dash:JSTestCase a dash:ShapeClass ; + rdfs:label "SHACL-JS test case" ; + rdfs:comment "A test case that calls a given SHACL-JS JavaScript function like a sh:JSFunction and compares its result with the dash:expectedResult." ; + rdfs:subClassOf dash:TestCase, + sh:JSFunction . + +dash:KeyInfoRole a dash:PropertyRole ; + rdfs:label "Key info" ; + rdfs:comment "The Key info role may be assigned to properties that are likely of special interest to a reader, so that they should appear whenever a summary of a focus node is shown." . + +dash:LabelRole a dash:PropertyRole ; + rdfs:label "Label" ; + rdfs:comment "Properties with this role produce strings that may serve as display label for the focus nodes. Labels should be either plain string literals or strings with a language tag. The values should also be single-line." . + +dash:LabelViewer a dash:SingleViewer ; + rdfs:label "Label viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI based on the display label of the resource. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:LangStringViewer a dash:SingleViewer ; + rdfs:label "LangString viewer" ; + rdfs:comment "A Viewer for literals with a language tag, rendering as the text plus a language indicator." . + +dash:LiteralViewer a dash:SingleViewer ; + rdfs:label "Literal viewer" ; + rdfs:comment "A simple viewer for literals, rendering the lexical form of the value." . + +dash:ModifyAction a dash:ShapeClass ; + rdfs:label "Modify action" ; + rdfs:comment "An action typically showing up in a Modify section of a selected resource. May make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:MultiEditor a dash:ShapeClass ; + rdfs:label "Multi editor" ; + rdfs:comment "An editor for multiple/all value nodes at once." ; + rdfs:subClassOf dash:Editor . + +dash:NodeExpressionViewer a dash:SingleViewer ; + rdfs:label "Node expression viewer" ; + rdfs:comment "A viewer for SHACL Node Expressions."^^rdf:HTML . + +dash:NonRecursiveConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Non-recursive constraint component" ; + rdfs:comment "Used to state that a property or path must not point back to itself." ; + sh:message "Points back at itself (recursively)" ; + sh:parameter dash:NonRecursiveConstraintComponent-nonRecursive ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateNonRecursiveProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ($this AS ?value) +WHERE { + { + FILTER (?nonRecursive) + } + $this $PATH $this . +}""" ] . + +dash:None a sh:NodeShape ; + rdfs:label "None" ; + rdfs:comment "A Shape that is no node can conform to." ; + sh:in () . + +dash:ParameterConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Parameter constraint component"@en ; + rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given Parameter."@en ; + sh:parameter dash:ParameterConstraintComponent-parameter . + +dash:PrimaryKeyConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Primary key constraint component" ; + dash:localConstraint true ; + rdfs:comment "Enforces a constraint that the given property (sh:path) serves as primary key for all resources in the target of the shape. If a property has been declared to be the primary key then each resource must have exactly one value for that property. Furthermore, the URIs of those resources must start with a given string (dash:uriStart), followed by the URL-encoded primary key value. For example if dash:uriStart is \"http://example.org/country-\" and the primary key for an instance is \"de\" then the URI must be \"http://example.org/country-de\". Finally, as a result of the URI policy, there can not be any other resource with the same value under the same primary key policy." ; + sh:labelTemplate "The property {?predicate} is the primary key and URIs start with {?uriStart}" ; + sh:message "Violation of primary key constraint" ; + sh:parameter dash:PrimaryKeyConstraintComponent-uriStart ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validatePrimaryKeyProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this +WHERE { + FILTER ( + # Must have a value for the primary key + NOT EXISTS { ?this $PATH ?any } + || + # Must have no more than one value for the primary key + EXISTS { + ?this $PATH ?value1 . + ?this $PATH ?value2 . + FILTER (?value1 != ?value2) . + } + || + # The value of the primary key must align with the derived URI + EXISTS { + { + ?this $PATH ?value . + FILTER NOT EXISTS { ?this $PATH ?value2 . FILTER (?value != ?value2) } + } + BIND (CONCAT($uriStart, ENCODE_FOR_URI(str(?value))) AS ?uri) . + FILTER (str(?this) != ?uri) . + } + ) +}""" ] . + +dash:QueryTestCase a dash:ShapeClass ; + rdfs:label "Query test case" ; + rdfs:comment "A test case running a given SPARQL SELECT query and comparing its results with those stored as JSON Result Set in the expected result property." ; + rdfs:subClassOf dash:TestCase, + sh:SPARQLSelectExecutable . + +dash:ReifiableByConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Reifiable-by constraint component" ; + sh:labelTemplate "Reifiable by {$reifiableBy}" ; + sh:parameter dash:ReifiableByConstraintComponent-reifiableBy . + +dash:RichTextEditor a dash:SingleEditor ; + rdfs:label "Rich text editor" ; + rdfs:comment "A rich text editor to enter the lexical value of a literal and a drop down to select language. The selected language is stored in the HTML lang attribute of the root node in the HTML DOM tree." . + +dash:RootClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Root class constraint component" ; + rdfs:comment "A constraint component defining the parameter dash:rootClass, which restricts the values to be either the root class itself or one of its subclasses. This is typically used in conjunction with properties that have rdfs:Class as their type." ; + sh:labelTemplate "Root class {$rootClass}" ; + sh:message "Value must be subclass of {$rootClass}" ; + sh:parameter dash:RootClassConstraintComponent-rootClass ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateRootClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasRootClass . + +dash:ScriptConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Script constraint component" ; + sh:parameter dash:ScriptConstraintComponent-scriptConstraint . + +dash:ScriptSuggestionGenerator a dash:ShapeClass ; + rdfs:label "Script suggestion generator" ; + rdfs:comment """A Suggestion Generator that is backed by an Active Data Shapes script. The script needs to return a JSON object or an array of JSON objects if it shall generate multiple suggestions. It may also return null to indicate that nothing was suggested. Note that the whole script is evaluated as a (JavaScript) expression, and those will use the last value as result. So simply putting an object at the end of your script should do. Alternatively, define the bulk of the operation as a function and simply call that function in the script. + +Each response object can have the following fields: + +{ + message: "The human readable message", // Defaults to the rdfs:label(s) of the suggestion generator + add: [ // An array of triples to add, each triple as an array with three nodes + [ subject, predicate, object ], + [ ... ] + ], + delete: [ + ... like add, for the triples to delete + ] +} + +Suggestions with neither added nor deleted triples will be discarded. + +At execution time, the script operates on the data graph as the active graph, with the following pre-bound variables: +- focusNode: the NamedNode that is the sh:focusNode of the validation result +- predicate: the NamedNode representing the predicate of the validation result, assuming sh:resultPath is a URI +- value: the value node from the validation result's sh:value, cast into the most suitable JS object +- the other pre-bound variables for the parameters of the constraint, e.g. in a sh:maxCount constraint it would be maxCount + +The script will be executed in read-only mode, i.e. it cannot modify the graph. + +Example with dash:js: + +({ + message: `Copy labels into ${graph.localName(predicate)}`, + add: focusNode.values(rdfs.label).map(label => + [ focusNode, predicate, label ] + ) +})""" ; + rdfs:subClassOf dash:Script, + dash:SuggestionGenerator . + +dash:ScriptTestCase a dash:ShapeClass ; + rdfs:label "Script test case" ; + rdfs:comment """A test case that evaluates a script. Requires exactly one value for dash:js and will operate on the test case's graph (with imports) as both data and shapes graph. + +Supports read-only scripts only at this stage.""" ; + rdfs:subClassOf dash:Script, + dash:TestCase . + +dash:ScriptValidator a dash:ShapeClass ; + rdfs:label "Script validator" ; + rdfs:comment """A SHACL validator based on an Active Data Shapes script. + +See the comment at dash:ScriptConstraint for the basic evaluation approach. Note that in addition to focusNode and value/values, the script can access pre-bound variables for each declared argument of the constraint component.""" ; + rdfs:subClassOf dash:Script, + sh:Validator . + +dash:SingleLineConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Single line constraint component" ; + rdfs:comment """A constraint component that can be used to declare that all values that are literals must have a lexical form that contains no line breaks ('\\n' or '\\r'). + +User interfaces may use the dash:singleLine flag to prefer a text field over a (multi-line) text area.""" ; + sh:message "Must not contain line breaks." ; + sh:parameter dash:SingleLineConstraintComponent-singleLine ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSingleLine" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER (!$singleLine || !isLiteral($value) || (!contains(str($value), '\\n') && !contains(str($value), '\\r'))) +}""" ; + sh:prefixes <http://datashapes.org/dash> ] . + +dash:StemConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Stem constraint component"@en ; + dash:staticConstraint true ; + rdfs:comment "A constraint component that can be used to verify that every value node is an IRI and the IRI starts with a given string value."@en ; + sh:labelTemplate "Value needs to have stem {$stem}" ; + sh:message "Value does not have stem {$stem}" ; + sh:parameter dash:StemConstraintComponent-stem ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateStem" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasStem . + +dash:StringOrLangStringOrHTML a rdf:List ; + rdfs:label "string or langString or HTML" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] [ sh:datatype rdf:HTML ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string, rdf:langString or rdf:HTML (in that order of preference)." . + +dash:SubClassEditor a dash:SingleEditor ; + rdfs:label "Sub-Class editor" ; + rdfs:comment "An editor for properties that declare a dash:rootClass. The editor allows selecting either the class itself or one of its subclasses." . + +dash:SubSetOfConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Sub set of constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to state that the set of value nodes must be a subset of the value of a given property." ; + sh:message "Must be one of the values of {$subSetOf}" ; + sh:parameter dash:SubSetOfConstraintComponent-subSetOf ; + sh:propertyValidator [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + $this $subSetOf $value . +}""" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSubSetOf" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +dash:SymmetricConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Symmetric constraint component" ; + rdfs:comment "A contraint component for property shapes to validate that a property is symmetric. For symmetric properties, if A relates to B then B must relate to A." ; + sh:message "Symmetric value expected" ; + sh:parameter dash:SymmetricConstraintComponent-symmetric ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateSymmetric" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this ?value { + FILTER ($symmetric) . + $this $PATH ?value . + FILTER NOT EXISTS { + ?value $PATH $this . + } +}""" ] . + +dash:TextAreaEditor a dash:SingleEditor ; + rdfs:label "Text area editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal." . + +dash:TextAreaWithLangEditor a dash:SingleEditor ; + rdfs:label "Text area with lang editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal and a drop down to select a language." . + +dash:TextFieldEditor a dash:SingleEditor ; + rdfs:label "Text field editor" ; + rdfs:comment """A simple input field to enter the value of a literal, without the ability to change language or datatype. + +This is the fallback editor for any literal if no other editors are more suitable.""" . + +dash:TextFieldWithLangEditor a dash:SingleEditor ; + rdfs:label "Text field with lang editor" ; + rdfs:comment "A single-line input field to enter the value of a literal and a drop down to select language, which is mandatory unless xsd:string is among the permissible datatypes." . + +dash:URIEditor a dash:SingleEditor ; + rdfs:label "URI editor" ; + rdfs:comment "An input field to enter the URI of a resource, e.g. rdfs:seeAlso links or images." . + +dash:URIViewer a dash:SingleViewer ; + rdfs:label "URI viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:UniqueValueForClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Unique value for class constraint component" ; + dash:propertySuggestionGenerator tosh:DeleteTripleSuggestionGenerator ; + rdfs:comment "A constraint component that can be used to state that the values of a property must be unique for all instances of a given class (and its subclasses)." ; + sh:labelTemplate "Values must be unique among all instances of {?uniqueValueForClass}" ; + sh:parameter dash:UniqueValueForClassConstraintComponent-uniqueValueForClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueValueForClass" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value {?value} must be unique but is also used by {?other}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Value {?value} must be unique but is also used by {?other}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ?value ?other +WHERE { + { + $this $PATH ?value . + ?other $PATH ?value . + FILTER (?other != $this) . + } + ?other a ?type . + ?type rdfs:subClassOf* $uniqueValueForClass . +}""" ] . + +dash:UntrustedHTMLViewer a dash:SingleViewer ; + rdfs:label "Untrusted HTML viewer" ; + rdfs:comment "A Viewer for HTML content from untrusted sources. This viewer will sanitize the HTML before rendering. Any a, button, checkbox, form, hidden, input, img, script, select, style and textarea tags and class and style attributes will be removed." . + +dash:ValueTableViewer a dash:MultiViewer ; + rdfs:label "Value table viewer" ; + rdfs:comment "A viewer that renders all values of a given property as a table, with one value per row, and the columns defined by the shape that is the sh:node or sh:class of the property." . + +dash:abstract a rdf:Property ; + rdfs:label "abstract" ; + rdfs:comment "Indicates that a class is \"abstract\" and cannot be used in asserted rdf:type triples. Only non-abstract subclasses of abstract classes should be instantiated directly." ; + rdfs:domain rdfs:Class ; + rdfs:range xsd:boolean . + +dash:actionGroup a rdf:Property ; + rdfs:label "action group" ; + rdfs:comment "Links an Action with the ActionGroup that it should be arranged in." ; + rdfs:domain dash:Action ; + rdfs:range dash:ActionGroup . + +dash:actionIconClass a rdf:Property ; + rdfs:label "action icon class" ; + rdfs:comment "The (CSS) class of an Action for display purposes alongside the label." ; + rdfs:domain dash:Action ; + rdfs:range xsd:string . + +dash:addedTriple a rdf:Property ; + rdfs:label "added triple" ; + rdfs:comment "May link a dash:GraphUpdate with one or more triples (represented as instances of rdf:Statement) that should be added to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:all a rdfs:Resource ; + rdfs:label "all" ; + rdfs:comment "Represents all users/roles, for example as a possible value of the default view for role property." . + +dash:applicableToClass a rdf:Property ; + rdfs:label "applicable to class" ; + rdfs:comment "Can be used to state that a shape is applicable to instances of a given class. This is a softer statement than \"target class\": a target means that all instances of the class must conform to the shape. Being applicable to simply means that the shape may apply to (some) instances of the class. This information can be used by algorithms or humans." ; + rdfs:domain sh:Shape ; + rdfs:range rdfs:Class . + +dash:cachable a rdf:Property ; + rdfs:label "cachable" ; + rdfs:comment "If set to true then the results of the SHACL function can be cached in between invocations with the same arguments. In other words, they are stateless and do not depend on triples in any graph, or the current time stamp etc." ; + rdfs:domain sh:Function ; + rdfs:range xsd:boolean . + +dash:composite a rdf:Property ; + rdfs:label "composite" ; + rdfs:comment "Can be used to indicate that a property/path represented by a property constraint represents a composite relationship. In a composite relationship, the life cycle of a \"child\" object (value of the property/path) depends on the \"parent\" object (focus node). If the parent gets deleted, then the child objects should be deleted, too. Tools may use dash:composite (if set to true) to implement cascading delete operations." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:defaultLang a rdf:Property ; + rdfs:label "default language" ; + rdfs:comment "Can be used to annotate a graph (usually the owl:Ontology) with the default language that tools should suggest for new literal values. For example, predominantly English graphs should have \"en\" as default language." ; + rdfs:domain owl:Ontology ; + rdfs:range xsd:string . + +dash:defaultViewForRole a rdf:Property ; + rdfs:label "default view for role" ; + rdfs:comment "Links a node shape with the roles for which it shall be used as default view. User interfaces can use these values to select how to present a given RDF resource. The values of this property are URIs representing a group of users or agents. There is a dedicated URI dash:all representing all users." ; + rdfs:domain sh:NodeShape . + +dash:deletedTriple a rdf:Property ; + rdfs:label "deleted triple" ; + rdfs:comment "May link a dash:GraphUpdate result with one or more triples (represented as instances of rdf:Statement) that should be deleted to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:dependencyPredicate a rdf:Property ; + rdfs:label "dependency predicate" ; + rdfs:comment "Can be used in dash:js node expressions to enumerate the predicates that the computation of the values may depend on. This can be used by clients to determine whether an edit requires re-computation of values on a form or elsewhere. For example, if the dash:js is something like \"focusNode.firstName + focusNode.lastName\" then the dependency predicates should be ex:firstName and ex:lastName." ; + rdfs:range rdf:Property . + +dash:detailsEndpoint a rdf:Property ; + rdfs:label "details endpoint" ; + rdfs:comment """Can be used to link a SHACL property shape with the URL of a SPARQL endpoint that may contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to values from an external graph when the user wants to retrieve more information about a value. + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information. One implementation strategy would be to periodically fetch the values specified by the sh:node or sh:class shape associated with the property, using the property shapes in that shape, and add the resulting triples into the main query graph. + +An example value is "https://query.wikidata.org/sparql".""" . + +dash:detailsGraph a rdf:Property ; + rdfs:label "details graph" ; + rdfs:comment """Can be used to link a SHACL property shape with a SHACL node expression that produces the URIs of one or more graphs that contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to another data graph when the user wants to retrieve more information about a value. + +The node expressions are evaluated with the focus node as input. (It is unclear whether there are also cases where the result may be different for each specific value, in which case the node expression would need a second input argument). + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information.""" . + +dash:editor a rdf:Property ; + rdfs:label "editor" ; + rdfs:comment "Can be used to link a property shape with an editor, to state a preferred editing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Editor . + +dash:excludedPrefix a rdf:Property ; + rdfs:label "excluded prefix" ; + rdfs:comment "Specifies a prefix that shall be excluded from the Script code generation." ; + rdfs:range xsd:string . + +dash:expectedResult a rdf:Property ; + rdfs:label "expected result" ; + rdfs:comment "The expected result(s) of a test case. The value range of this property is different for each kind of test cases." ; + rdfs:domain dash:TestCase . + +dash:expectedResultIsJSON a rdf:Property ; + rdfs:label "expected result is JSON" ; + rdfs:comment "A flag to indicate that the expected result represents a JSON string. If set to true, then tests would compare JSON structures (regardless of whitespaces) instead of actual syntax." ; + rdfs:range xsd:boolean . + +dash:expectedResultIsTTL a rdf:Property ; + rdfs:label "expected result is Turtle" ; + rdfs:comment "A flag to indicate that the expected result represents an RDF graph encoded as a Turtle file. If set to true, then tests would compare graphs instead of actual syntax." ; + rdfs:domain dash:TestCase ; + rdfs:range xsd:boolean . + +dash:fixed a rdf:Property ; + rdfs:label "fixed" ; + rdfs:comment "Can be used to mark that certain validation results have already been fixed." ; + rdfs:domain sh:ValidationResult ; + rdfs:range xsd:boolean . + +dash:height a rdf:Property ; + rdfs:label "height" ; + rdfs:comment "The height." ; + rdfs:range xsd:integer . + +dash:hidden a rdf:Property ; + rdfs:label "hidden" ; + rdfs:comment "Properties marked as hidden do not appear in user interfaces, yet remain part of the shape for other purposes such as validation and scripting or GraphQL schema generation." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:includedExecutionPlatform a rdf:Property ; + rdfs:label "included execution platform" ; + rdfs:comment "Can be used to state that one (subject) execution platform includes all features of another platform (object)." ; + rdfs:domain dash:ExecutionPlatform ; + rdfs:range dash:ExecutionPlatform . + +dash:index a rdf:Property ; + rdfs:label "index" ; + rdfs:range xsd:integer . + +dash:isDeactivated a sh:SPARQLFunction ; + rdfs:label "is deactivated" ; + rdfs:comment "Checks whether a given shape or constraint has been marked as \"deactivated\" using sh:deactivated." ; + sh:ask """ASK { + ?constraintOrShape sh:deactivated true . +}""" ; + sh:parameter [ a sh:Parameter ; + sh:description "The sh:Constraint or sh:Shape to test." ; + sh:name "constraint or shape" ; + sh:path dash:constraintOrShape ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindBlankNode a sh:SPARQLFunction ; + rdfs:label "is NodeKind BlankNode" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes BlankNodes." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindIRI a sh:SPARQLFunction ; + rdfs:label "is NodeKind IRI" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes IRIs." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindLiteral a sh:SPARQLFunction ; + rdfs:label "is NodeKind Literal" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes Literals." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isSubClassOf a sh:SPARQLFunction ; + rdfs:label "is subclass of" ; + rdfs:comment "Returns true if a given class (first argument) is a subclass of a given other class (second argument), or identical to that class. This is equivalent to an rdfs:subClassOf* check." ; + sh:ask """ASK { + $subclass rdfs:subClassOf* $superclass . +}""" ; + sh:parameter dash:isSubClassOf-subclass, + dash:isSubClassOf-superclass ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:js a rdf:Property ; + rdfs:label "JavaScript source code" ; + rdfs:comment "The JavaScript source code of a Script." ; + rdfs:domain dash:Script ; + rdfs:range xsd:string . + +dash:localConstraint a rdf:Property ; + rdfs:label "local constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the shape definitions and the direct property values of the focus node mentioned in the property constraints. Examples of this include sh:minCount and sh:hasValue. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server, assuming the client has downloaded a complete snapshot of the resource. + +Any component marked with dash:staticConstraint is also a dash:localConstraint.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:localValues a rdf:Property ; + rdfs:label "local values" ; + rdfs:comment "If set to true at a property shape then any sh:values rules of this property will be ignored when 'all inferences' are computed. This is useful for property values that shall only be computed for individual focus nodes (e.g. when a user visits a resource) but not for large inference runs." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:mimeTypes a rdf:Property ; + rdfs:label "mime types" ; + rdfs:comment """For file-typed properties, this can be used to specify the expected/allowed mime types of its values. This can be used, for example, to limit file input boxes or file selectors. If multiple values are allowed then they need to be separated by commas. + +Example values are listed at https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types""" ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:string . + +dash:onAllValues a rdf:Property ; + rdfs:label "on all values" ; + rdfs:comment "If set to true for a ScriptConstraint or ScriptValidator, then the associated script will receive all value nodes at once, as a value of the variable values. By default (or false), the script is called for each value node individually." ; + rdfs:range xsd:boolean . + +dash:propertySuggestionGenerator a rdf:Property ; + rdfs:label "property suggestion generator" ; + rdfs:comment "Links the constraint component with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by a property constraint." ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range dash:SuggestionGenerator . + +dash:readOnly a rdf:Property ; + rdfs:label "read only" ; + rdfs:comment "Used as a hint for user interfaces that values of the associated property should not be editable. The values of this may be the boolean literals true or false or, more generally, a SHACL node expression that must evaluate to true or false." ; + rdfs:domain sh:PropertyShape . + +dash:requiredExecutionPlatform a rdf:Property ; + rdfs:label "required execution platform" ; + rdfs:comment "Links a SPARQL executable with the platforms that it can be executed on. This can be used by a SHACL implementation to determine whether a constraint validator or rule shall be ignored based on the current platform. For example, if a SPARQL query uses a function or magic property that is only available in TopBraid then a non-TopBraid platform can ignore the constraint (or simply always return no validation results). If this property has no value then the assumption is that the execution will succeed. As soon as one value exists, the assumption is that the engine supports at least one of the given platforms." ; + rdfs:domain sh:SPARQLExecutable ; + rdfs:range dash:ExecutionPlatform . + +dash:resourceAction a rdf:Property ; + rdfs:label "resource action" ; + rdfs:comment "Links a class with the Resource Actions that can be applied to instances of that class." ; + rdfs:domain rdfs:Class ; + rdfs:range dash:ResourceAction . + +dash:shape a rdf:Property ; + rdfs:label "shape" ; + rdfs:comment "States that a subject resource has a given shape. This property can, for example, be used to capture results of SHACL validation on static data." ; + rdfs:range sh:Shape . + +dash:shapeScript a rdf:Property ; + rdfs:label "shape script" ; + rdfs:domain sh:NodeShape . + +dash:staticConstraint a rdf:Property ; + rdfs:label "static constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the parameters. Examples of this include sh:datatype or sh:nodeKind, where no further triples need to be queried to determine the result. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:suggestion a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a result with one or more suggestions on how to address or improve the underlying issue." ; + rdfs:domain sh:AbstractResult ; + rdfs:range dash:Suggestion . + +dash:suggestionConfidence a rdf:Property ; + rdfs:label "suggestion confidence" ; + rdfs:comment "An optional confidence between 0% and 100%. Suggestions with 100% confidence are strongly recommended. Can be used to sort recommended updates." ; + rdfs:domain dash:Suggestion ; + rdfs:range xsd:decimal . + +dash:suggestionGenerator a rdf:Property ; + rdfs:label "suggestion generator" ; + rdfs:comment "Links a sh:SPARQLConstraint or sh:JSConstraint with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by the constraint." ; + rdfs:range dash:SuggestionGenerator . + +dash:suggestionGroup a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a suggestion with the group identifier to which it belongs. By default this is a link to the dash:SuggestionGenerator, but in principle this could be any value." ; + rdfs:domain dash:Suggestion . + +dash:toString a sh:JSFunction, + sh:SPARQLFunction ; + rdfs:label "to string" ; + dash:cachable true ; + rdfs:comment "Returns a literal with datatype xsd:string that has the input value as its string. If the input value is an (URI) resource then its URI will be used." ; + sh:jsFunctionName "dash_toString" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "Convert {$arg} to xsd:string" ; + sh:parameter [ a sh:Parameter ; + sh:description "The input value." ; + sh:name "arg" ; + sh:nodeKind sh:IRIOrLiteral ; + sh:path dash:arg ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:string ; + sh:select """SELECT (xsd:string($arg) AS ?result) +WHERE { +}""" . + +dash:uriTemplate a sh:SPARQLFunction ; + rdfs:label "URI template" ; + dash:cachable true ; + rdfs:comment """Inserts a given value into a given URI template, producing a new xsd:anyURI literal. + +In the future this should support RFC 6570 but for now it is limited to simple {...} patterns.""" ; + sh:parameter [ a sh:Parameter ; + sh:datatype xsd:string ; + sh:description "The URI template, e.g. \"http://example.org/{symbol}\"." ; + sh:name "template" ; + sh:order 0 ; + sh:path dash:template ], + [ a sh:Parameter ; + sh:description "The literal value to insert into the template. Will use the URI-encoded string of the lexical form (for now)." ; + sh:name "value" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dash:value ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:anyURI ; + sh:select """SELECT ?result +WHERE { + BIND (xsd:anyURI(REPLACE(?template, "\\\\{[a-zA-Z]+\\\\}", $value)) AS ?result) +}""" . + +dash:validateShapes a rdf:Property ; + rdfs:label "validate shapes" ; + rdfs:comment "True to also validate the shapes itself (i.e. parameter declarations)." ; + rdfs:domain dash:GraphValidationTestCase ; + rdfs:range xsd:boolean . + +dash:valueCount a sh:SPARQLFunction ; + rdfs:label "value count" ; + rdfs:comment "Computes the number of objects for a given subject/predicate combination." ; + sh:parameter [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The predicate to get the number of objects of." ; + sh:name "predicate" ; + sh:order 1 ; + sh:path dash:predicate ], + [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The subject to get the number of objects of." ; + sh:name "subject" ; + sh:order 0 ; + sh:path dash:subject ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:integer ; + sh:select """ + SELECT (COUNT(?object) AS ?result) + WHERE { + $subject $predicate ?object . + } +""" . + +dash:viewer a rdf:Property ; + rdfs:label "viewer" ; + rdfs:comment "Can be used to link a property shape with a viewer, to state a preferred viewing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Viewer . + +dash:width a rdf:Property ; + rdfs:label "width" ; + rdfs:comment "The width." ; + rdfs:range xsd:integer . + +dash:x a rdf:Property ; + rdfs:label "x" ; + rdfs:comment "The x position." ; + rdfs:range xsd:integer . + +dash:y a rdf:Property ; + rdfs:label "y" ; + rdfs:comment "The y position." ; + rdfs:range xsd:integer . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100#ontology> a owl:Ontology ; + owl:imports default3:ontology, + <https://unl.tetras-libre.fr/rdf/schema> . + +rdf:type a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Class . + +rdfs:comment a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:label a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:range a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:subClassOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdfs:Class ; + rdfs:range rdfs:Class . + +rdfs:subPropertyOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdf:Property . + +sh:AndConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateAnd" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:ClassConstraintComponent sh:labelTemplate "Value needs to have class {$class}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasClass . + +sh:ClosedConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Closed shape: only the enumerated properties can be used" ; + sh:nodeValidator [ a sh:SPARQLSelectValidator ; + sh:message "Predicate {?path} is not allowed (closed shape)" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this (?predicate AS ?path) ?value + WHERE { + { + FILTER ($closed) . + } + $this ?predicate ?value . + FILTER (NOT EXISTS { + GRAPH $shapesGraph { + $currentShape sh:property/sh:path ?predicate . + } + } && (!bound($ignoredProperties) || NOT EXISTS { + GRAPH $shapesGraph { + $ignoredProperties rdf:rest*/rdf:first ?predicate . + } + })) + } +""" ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosed" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Predicate is not allowed (closed shape)" ] . + +sh:DatatypeConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Values must have datatype {$datatype}" ; + sh:message "Value does not have datatype {$datatype}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDatatype" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:DisjointConstraintComponent dash:localConstraint true ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDisjoint" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value node must not also be one of the values of {$disjoint}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ + ASK { + FILTER NOT EXISTS { + $this $disjoint $value . + } + } + """ ; + sh:message "Property must not share any values with {$disjoint}" ; + sh:prefixes <http://datashapes.org/dash> ] . + +sh:EqualsConstraintComponent dash:localConstraint true ; + sh:message "Must have same values as {$equals}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsNode" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + FILTER NOT EXISTS { $this $equals $this } + BIND ($this AS ?value) . + } + UNION + { + $this $equals ?value . + FILTER (?value != $this) . + } + } + """ ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + $this $PATH ?value . + MINUS { + $this $equals ?value . + } + } + UNION + { + $this $equals ?value . + MINUS { + $this $PATH ?value . + } + } + } + """ ] . + +sh:HasValueConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have value {$hasValue}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value must be {$hasValue}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER ($value = $hasValue) +}""" ; + sh:message "Value must be {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueProperty" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Missing expected value {$hasValue}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Missing expected value {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + FILTER NOT EXISTS { $this $PATH $hasValue } + } + """ ] . + +sh:InConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Value must be in {$in}" ; + sh:message "Value is not in {$in}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isIn . + +sh:JSExecutable dash:abstract true . + +sh:LanguageInConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Language must match any of {$languageIn}" ; + sh:message "Language does not match any of {$languageIn}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateLanguageIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isLanguageIn . + +sh:LessThanConstraintComponent dash:localConstraint true ; + sh:message "Value is not < value of {$lessThan}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThan ?otherValue . + BIND (?value < ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } + """ ] . + +sh:LessThanOrEqualsConstraintComponent dash:localConstraint true ; + sh:message "Value is not <= value of {$lessThanOrEquals}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanOrEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThanOrEquals ?otherValue . + BIND (?value <= ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } +""" ] . + +sh:MaxCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must not have more than {$maxCount} values" ; + sh:message "More than {$maxCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + $this $PATH ?value . + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) > $maxCount) + """ ] . + +sh:MaxExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be < {$maxExclusive}" ; + sh:message "Value is not < {$maxExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxExclusive . + +sh:MaxInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be <= {$maxInclusive}" ; + sh:message "Value is not <= {$maxInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxInclusive . + +sh:MaxLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must not have more than {$maxLength} characters" ; + sh:message "Value has more than {$maxLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxLength . + +sh:MinCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have at least {$minCount} values" ; + sh:message "Fewer than {$minCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + OPTIONAL { + $this $PATH ?value . + } + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) < $minCount) + """ ] . + +sh:MinExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be > {$minExclusive}" ; + sh:message "Value is not > {$minExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinExclusive . + +sh:MinInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be >= {$minInclusive}" ; + sh:message "Value is not >= {$minInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinInclusive . + +sh:MinLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have less than {$minLength} characters" ; + sh:message "Value has less than {$minLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinLength . + +sh:NodeConstraintComponent sh:message "Value does not have shape {$node}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNode" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:NodeKindConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have node kind {$nodeKind}" ; + sh:message "Value does not have node kind {$nodeKind}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNodeKind" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasNodeKind . + +sh:NotConstraintComponent sh:labelTemplate "Value must not have shape {$not}" ; + sh:message "Value does have shape {$not}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNot" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:OrConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateOr" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:PatternConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must match pattern \"{$pattern}\"" ; + sh:message "Value does not match pattern \"{$pattern}\"" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validatePattern" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasPattern . + +sh:QualifiedMaxCountConstraintComponent sh:labelTemplate "No more than {$qualifiedMaxCount} values can have shape {$qualifiedValueShape}" ; + sh:message "More than {$qualifiedMaxCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:QualifiedMinCountConstraintComponent sh:labelTemplate "No fewer than {$qualifiedMinCount} values can have shape {$qualifiedValueShape}" ; + sh:message "Fewer than {$qualifiedMinCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:Rule dash:abstract true . + +sh:Rules a rdfs:Resource ; + rdfs:label "SHACL Rules" ; + rdfs:comment "The SHACL rules entailment regime." ; + rdfs:seeAlso <https://www.w3.org/TR/shacl-af/#Rules> . + +sh:TargetType dash:abstract true . + +sh:UniqueLangConstraintComponent dash:localConstraint true ; + sh:labelTemplate "No language can be used more than once" ; + sh:message "Language \"{?lang}\" used more than once" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueLangProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?lang + WHERE { + { + FILTER sameTerm($uniqueLang, true) . + } + $this $PATH ?value . + BIND (lang(?value) AS ?lang) . + FILTER (bound(?lang) && ?lang != "") . + FILTER EXISTS { + $this $PATH ?otherValue . + FILTER (?otherValue != ?value && ?lang = lang(?otherValue)) . + } + } + """ ] . + +sh:XoneConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateXone" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:order rdfs:range xsd:decimal . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<https://tenet.tetras-libre.fr/transduction-schemes> a owl:Ontology ; + owl:imports <http://datashapes.org/dash> . + +cts:batch_execution_1 a cts:batch_execution ; + rdfs:label "batch execution 1" . + +cts:class_generation a owl:Class, + sh:NodeShape ; + rdfs:label "class generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net . + +cts:dev_schemes a owl:Class, + sh:NodeShape ; + rdfs:label "dev schemes" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_add-event, + cts:old_add-state-property, + cts:old_compose-agt-verb-obj-as-simple-event, + cts:old_compose-aoj-verb-obj-as-simple-state-property, + cts:old_compute-domain-range-of-event-object-properties, + cts:old_compute-domain-range-of-state-property-object-properties . + +cts:generation a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:net_extension a owl:Class, + sh:NodeShape ; + rdfs:label "net extension" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:extend-atom-list-net, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:specify-axis-of-atom-list-net . + +cts:preprocessing a owl:Class, + sh:NodeShape ; + rdfs:label "preprocessing" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:bypass-reification, + cts:define-uw-id, + cts:link-to-scope-entry, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:relation_generation a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property, + cts:old_link-classes-by-relation-property . + +cts:relation_generation_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:generate-event-class, + cts:generate-relation-property . + +cts:relation_generation_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property . + +cts:relation_generation_3_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_link-classes-by-relation-property . + +cts:relation_generation_3_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:link-instances-by-relation-property . + +cts:relation_generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +<https://unl.tetras-libre.fr/rdf/schema#@ability> a owl:Class ; + rdfs:label "ability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@about> a owl:Class ; + rdfs:label "about" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@above> a owl:Class ; + rdfs:label "above" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@according_to> a owl:Class ; + rdfs:label "according to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@across> a owl:Class ; + rdfs:label "across" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@active> a owl:Class ; + rdfs:label "active" ; + rdfs:subClassOf unl:voice ; + skos:definition "He built this house in 1895" . + +<https://unl.tetras-libre.fr/rdf/schema#@adjective> a owl:Class ; + rdfs:label "adjective" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@adverb> a owl:Class ; + rdfs:label "adverb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@advice> a owl:Class ; + rdfs:label "advice" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@after> a owl:Class ; + rdfs:label "after" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@again> a owl:Class ; + rdfs:label "again" ; + rdfs:subClassOf unl:positive ; + skos:definition "iterative" . + +<https://unl.tetras-libre.fr/rdf/schema#@against> a owl:Class ; + rdfs:label "against" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@agreement> a owl:Class ; + rdfs:label "agreement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@all> a owl:Class ; + rdfs:label "all" ; + rdfs:subClassOf unl:quantification ; + skos:definition "universal quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@almost> a owl:Class ; + rdfs:label "almost" ; + rdfs:subClassOf unl:degree ; + skos:definition "approximative" . + +<https://unl.tetras-libre.fr/rdf/schema#@along> a owl:Class ; + rdfs:label "along" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@also> a owl:Class ; + rdfs:label "also" ; + rdfs:subClassOf unl:degree, + unl:specification ; + skos:definition "repetitive" . + +<https://unl.tetras-libre.fr/rdf/schema#@although> a owl:Class ; + rdfs:label "although" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@among> a owl:Class ; + rdfs:label "among" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@and> a owl:Class ; + rdfs:label "and" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@anger> a owl:Class ; + rdfs:label "anger" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@angle_bracket> a owl:Class ; + rdfs:label "angle bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@anterior> a owl:Class ; + rdfs:label "anterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "before some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@anthropomorphism> a owl:Class ; + rdfs:label "anthropomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Ascribing human characteristics to something that is not human, such as an animal or a god (see zoomorphism)" . + +<https://unl.tetras-libre.fr/rdf/schema#@antiphrasis> a owl:Class ; + rdfs:label "antiphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Word or words used contradictory to their usual meaning, often with irony" . + +<https://unl.tetras-libre.fr/rdf/schema#@antonomasia> a owl:Class ; + rdfs:label "antonomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a phrase for a proper name or vice versa" . + +<https://unl.tetras-libre.fr/rdf/schema#@any> a owl:Class ; + rdfs:label "any" ; + rdfs:subClassOf unl:quantification ; + skos:definition "existential quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@archaic> a owl:Class ; + rdfs:label "archaic" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@around> a owl:Class ; + rdfs:label "around" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@as> a owl:Class ; + rdfs:label "as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as.@if> a owl:Class ; + rdfs:label "as.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_far_as> a owl:Class ; + rdfs:label "as far as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_of> a owl:Class ; + rdfs:label "as of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_per> a owl:Class ; + rdfs:label "as per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_regards> a owl:Class ; + rdfs:label "as regards" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_well_as> a owl:Class ; + rdfs:label "as well as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@assertion> a owl:Class ; + rdfs:label "assertion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@assumption> a owl:Class ; + rdfs:label "assumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@at> a owl:Class ; + rdfs:label "at" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@attention> a owl:Class ; + rdfs:label "attention" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@back> a owl:Class ; + rdfs:label "back" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@barring> a owl:Class ; + rdfs:label "barring" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because> a owl:Class ; + rdfs:label "because" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because_of> a owl:Class ; + rdfs:label "because of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@before> a owl:Class ; + rdfs:label "before" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@behind> a owl:Class ; + rdfs:label "behind" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@belief> a owl:Class ; + rdfs:label "belief" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@below> a owl:Class ; + rdfs:label "below" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beside> a owl:Class ; + rdfs:label "beside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@besides> a owl:Class ; + rdfs:label "besides" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@between> a owl:Class ; + rdfs:label "between" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beyond> a owl:Class ; + rdfs:label "beyond" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@both> a owl:Class ; + rdfs:label "both" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@bottom> a owl:Class ; + rdfs:label "bottom" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@brace> a owl:Class ; + rdfs:label "brace" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@brachylogia> a owl:Class ; + rdfs:label "brachylogia" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of conjunctions between a series of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@but> a owl:Class ; + rdfs:label "but" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by> a owl:Class ; + rdfs:label "by" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by_means_of> a owl:Class ; + rdfs:label "by means of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@catachresis> a owl:Class ; + rdfs:label "catachresis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "use an existing word to denote something that has no name in the current language" . + +<https://unl.tetras-libre.fr/rdf/schema#@causative> a owl:Class ; + rdfs:label "causative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "causative" . + +<https://unl.tetras-libre.fr/rdf/schema#@certain> a owl:Class ; + rdfs:label "certain" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@chiasmus> a owl:Class ; + rdfs:label "chiasmus" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "reversal of grammatical structures in successive clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@circa> a owl:Class ; + rdfs:label "circa" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@climax> a owl:Class ; + rdfs:label "climax" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "arrangement of words in order of increasing importance" . + +<https://unl.tetras-libre.fr/rdf/schema#@clockwise> a owl:Class ; + rdfs:label "clockwise" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@colloquial> a owl:Class ; + rdfs:label "colloquial" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@command> a owl:Class ; + rdfs:label "command" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@comment> a owl:Class ; + rdfs:label "comment" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being said about the topic" . + +<https://unl.tetras-libre.fr/rdf/schema#@concerning> a owl:Class ; + rdfs:label "concerning" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@conclusion> a owl:Class ; + rdfs:label "conclusion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@condition> a owl:Class ; + rdfs:label "condition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@confirmation> a owl:Class ; + rdfs:label "confirmation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consent> a owl:Class ; + rdfs:label "consent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@consequence> a owl:Class ; + rdfs:label "consequence" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consonance> a owl:Class ; + rdfs:label "consonance" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of consonant sounds without the repetition of the vowel sounds" . + +<https://unl.tetras-libre.fr/rdf/schema#@contact> a owl:Class ; + rdfs:label "contact" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@contentment> a owl:Class ; + rdfs:label "contentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@continuative> a owl:Class ; + rdfs:label "continuative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "continuous" . + +<https://unl.tetras-libre.fr/rdf/schema#@conviction> a owl:Class ; + rdfs:label "conviction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@decision> a owl:Class ; + rdfs:label "decision" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@deduction> a owl:Class ; + rdfs:label "deduction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@desire> a owl:Class ; + rdfs:label "desire" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@despite> a owl:Class ; + rdfs:label "despite" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@determination> a owl:Class ; + rdfs:label "determination" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@dialect> a owl:Class ; + rdfs:label "dialect" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@disagreement> a owl:Class ; + rdfs:label "disagreement" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@discontentment> a owl:Class ; + rdfs:label "discontentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@dissent> a owl:Class ; + rdfs:label "dissent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@distal> a owl:Class ; + rdfs:label "distal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "far from the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_negative> a owl:Class ; + rdfs:label "double negative" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Grammar construction that can be used as an expression and it is the repetition of negative words" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_parenthesis> a owl:Class ; + rdfs:label "double parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@double_quote> a owl:Class ; + rdfs:label "double quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@doubt> a owl:Class ; + rdfs:label "doubt" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@down> a owl:Class ; + rdfs:label "down" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@dual> a owl:Class ; + rdfs:label "dual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@due_to> a owl:Class ; + rdfs:label "due to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@during> a owl:Class ; + rdfs:label "during" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@dysphemism> a owl:Class ; + rdfs:label "dysphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a harsher, more offensive, or more disagreeable term for another. Opposite of euphemism" . + +<https://unl.tetras-libre.fr/rdf/schema#@each> a owl:Class ; + rdfs:label "each" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@either> a owl:Class ; + rdfs:label "either" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@ellipsis> a owl:Class ; + rdfs:label "ellipsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@emphasis> a owl:Class ; + rdfs:label "emphasis" ; + rdfs:subClassOf unl:positive ; + skos:definition "emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@enough> a owl:Class ; + rdfs:label "enough" ; + rdfs:subClassOf unl:positive ; + skos:definition "sufficiently (enough)" . + +<https://unl.tetras-libre.fr/rdf/schema#@entire> a owl:Class ; + rdfs:label "entire" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@entry> a owl:Class ; + rdfs:label "entry" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "sentence head" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanalepsis> a owl:Class ; + rdfs:label "epanalepsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of the initial word or words of a clause or sentence at the end of the clause or sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanorthosis> a owl:Class ; + rdfs:label "epanorthosis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Immediate and emphatic self-correction, often following a slip of the tongue" . + +<https://unl.tetras-libre.fr/rdf/schema#@equal> a owl:Class ; + rdfs:label "equal" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of equality" . + +<https://unl.tetras-libre.fr/rdf/schema#@equivalent> a owl:Class ; + rdfs:label "equivalent" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@euphemism> a owl:Class ; + rdfs:label "euphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a less offensive or more agreeable term for another" . + +<https://unl.tetras-libre.fr/rdf/schema#@even> a owl:Class ; + rdfs:label "even" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@even.@if> a owl:Class ; + rdfs:label "even.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except> a owl:Class ; + rdfs:label "except" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except.@if> a owl:Class ; + rdfs:label "except.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except_for> a owl:Class ; + rdfs:label "except for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exclamation> a owl:Class ; + rdfs:label "exclamation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@excluding> a owl:Class ; + rdfs:label "excluding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exhortation> a owl:Class ; + rdfs:label "exhortation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@expectation> a owl:Class ; + rdfs:label "expectation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@experiential> a owl:Class ; + rdfs:label "experiential" ; + rdfs:subClassOf unl:aspect ; + skos:definition "experience" . + +<https://unl.tetras-libre.fr/rdf/schema#@extra> a owl:Class ; + rdfs:label "extra" ; + rdfs:subClassOf unl:positive ; + skos:definition "excessively (too)" . + +<https://unl.tetras-libre.fr/rdf/schema#@failing> a owl:Class ; + rdfs:label "failing" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@familiar> a owl:Class ; + rdfs:label "familiar" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@far> a owl:Class ; + rdfs:label "far" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@fear> a owl:Class ; + rdfs:label "fear" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@female> a owl:Class ; + rdfs:label "female" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@focus> a owl:Class ; + rdfs:label "focus" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "information that is contrary to the presuppositions of the interlocutor" . + +<https://unl.tetras-libre.fr/rdf/schema#@following> a owl:Class ; + rdfs:label "following" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@for> a owl:Class ; + rdfs:label "for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@from> a owl:Class ; + rdfs:label "from" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@front> a owl:Class ; + rdfs:label "front" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@future> a owl:Class ; + rdfs:label "future" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time after the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@generic> a owl:Class ; + rdfs:label "generic" ; + rdfs:subClassOf unl:quantification ; + skos:definition "no quantification" . + +<https://unl.tetras-libre.fr/rdf/schema#@given> a owl:Class ; + rdfs:label "given" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@habitual> a owl:Class ; + rdfs:label "habitual" ; + rdfs:subClassOf unl:aspect ; + skos:definition "habitual" . + +<https://unl.tetras-libre.fr/rdf/schema#@half> a owl:Class ; + rdfs:label "half" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@hesitation> a owl:Class ; + rdfs:label "hesitation" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@hope> a owl:Class ; + rdfs:label "hope" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@hyperbole> a owl:Class ; + rdfs:label "hyperbole" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of exaggerated terms for emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@hypothesis> a owl:Class ; + rdfs:label "hypothesis" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@if> a owl:Class ; + rdfs:label "if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@if.@only> a owl:Class ; + rdfs:label "if.@only" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@imperfective> a owl:Class ; + rdfs:label "imperfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "uncompleted" . + +<https://unl.tetras-libre.fr/rdf/schema#@in> a owl:Class ; + rdfs:label "in" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@in_accordance_with> a owl:Class ; + rdfs:label "in accordance with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_addition_to> a owl:Class ; + rdfs:label "in addition to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case> a owl:Class ; + rdfs:label "in case" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case_of> a owl:Class ; + rdfs:label "in case of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_favor_of> a owl:Class ; + rdfs:label "in favor of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_place_of> a owl:Class ; + rdfs:label "in place of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_spite_of> a owl:Class ; + rdfs:label "in spite of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inceptive> a owl:Class ; + rdfs:label "inceptive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "beginning" . + +<https://unl.tetras-libre.fr/rdf/schema#@inchoative> a owl:Class ; + rdfs:label "inchoative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "change of state" . + +<https://unl.tetras-libre.fr/rdf/schema#@including> a owl:Class ; + rdfs:label "including" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inferior> a owl:Class ; + rdfs:label "inferior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@inside> a owl:Class ; + rdfs:label "inside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@instead_of> a owl:Class ; + rdfs:label "instead of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@intention> a owl:Class ; + rdfs:label "intention" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interrogation> a owl:Class ; + rdfs:label "interrogation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interruption> a owl:Class ; + rdfs:label "interruption" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "insertion of a clause or sentence in a place where it interrupts the natural flow of the sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@intimate> a owl:Class ; + rdfs:label "intimate" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@invitation> a owl:Class ; + rdfs:label "invitation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@irony> a owl:Class ; + rdfs:label "irony" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of word in a way that conveys a meaning opposite to its usual meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@iterative> a owl:Class ; + rdfs:label "iterative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "repetition" . + +<https://unl.tetras-libre.fr/rdf/schema#@jargon> a owl:Class ; + rdfs:label "jargon" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@judgement> a owl:Class ; + rdfs:label "judgement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@least> a owl:Class ; + rdfs:label "least" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@left> a owl:Class ; + rdfs:label "left" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@less> a owl:Class ; + rdfs:label "less" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@like> a owl:Class ; + rdfs:label "like" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@literary> a owl:Class ; + rdfs:label "literary" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@majority> a owl:Class ; + rdfs:label "majority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a major part" . + +<https://unl.tetras-libre.fr/rdf/schema#@male> a owl:Class ; + rdfs:label "male" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@maybe> a owl:Class ; + rdfs:label "maybe" ; + rdfs:subClassOf unl:polarity ; + skos:definition "dubitative" . + +<https://unl.tetras-libre.fr/rdf/schema#@medial> a owl:Class ; + rdfs:label "medial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@metaphor> a owl:Class ; + rdfs:label "metaphor" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Stating one entity is another for the purpose of comparing them in quality" . + +<https://unl.tetras-libre.fr/rdf/schema#@metonymy> a owl:Class ; + rdfs:label "metonymy" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a word to suggest what is really meant" . + +<https://unl.tetras-libre.fr/rdf/schema#@minority> a owl:Class ; + rdfs:label "minority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a minor part" . + +<https://unl.tetras-libre.fr/rdf/schema#@minus> a owl:Class ; + rdfs:label "minus" ; + rdfs:subClassOf unl:positive ; + skos:definition "downtoned (a little)" . + +<https://unl.tetras-libre.fr/rdf/schema#@more> a owl:Class ; + rdfs:label "more" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@most> a owl:Class ; + rdfs:label "most" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@multal> a owl:Class ; + rdfs:label "multal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@narrative> a owl:Class ; + rdfs:label "narrative" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@near> a owl:Class ; + rdfs:label "near" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@necessity> a owl:Class ; + rdfs:label "necessity" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@neither> a owl:Class ; + rdfs:label "neither" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@neutral> a owl:Class ; + rdfs:label "neutral" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@no> a owl:Class ; + rdfs:label "no" ; + rdfs:subClassOf unl:quantification ; + skos:definition "none" . + +<https://unl.tetras-libre.fr/rdf/schema#@not> a owl:Class ; + rdfs:label "not" ; + rdfs:subClassOf unl:polarity ; + skos:definition "negative" . + +<https://unl.tetras-libre.fr/rdf/schema#@notwithstanding> a owl:Class ; + rdfs:label "notwithstanding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@noun> a owl:Class ; + rdfs:label "noun" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@obligation> a owl:Class ; + rdfs:label "obligation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@of> a owl:Class ; + rdfs:label "of" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@off> a owl:Class ; + rdfs:label "off" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on> a owl:Class ; + rdfs:label "on" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@on_account_of> a owl:Class ; + rdfs:label "on account of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on_behalf_of> a owl:Class ; + rdfs:label "on behalf of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@one> a owl:Class ; + rdfs:label "1" ; + rdfs:subClassOf unl:person ; + skos:definition "first person speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@only> a owl:Class ; + rdfs:label "only" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@onomatopoeia> a owl:Class ; + rdfs:label "onomatopoeia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Words that sound like their meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@opinion> a owl:Class ; + rdfs:label "opinion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@opposite> a owl:Class ; + rdfs:label "opposite" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@or> a owl:Class ; + rdfs:label "or" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@ordinal> a owl:Class ; + rdfs:label "ordinal" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@other> a owl:Class ; + rdfs:label "other" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@outside> a owl:Class ; + rdfs:label "outside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@over> a owl:Class ; + rdfs:label "over" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@owing_to> a owl:Class ; + rdfs:label "owing to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@own> a owl:Class ; + rdfs:label "own" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@oxymoron> a owl:Class ; + rdfs:label "oxymoron" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using two terms together, that normally contradict each other" . + +<https://unl.tetras-libre.fr/rdf/schema#@pace> a owl:Class ; + rdfs:label "pace" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@pain> a owl:Class ; + rdfs:label "pain" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@paradox> a owl:Class ; + rdfs:label "paradox" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of apparently contradictory ideas to point out some underlying truth" . + +<https://unl.tetras-libre.fr/rdf/schema#@parallelism> a owl:Class ; + rdfs:label "parallelism" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "use of similar structures in two or more clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@parenthesis> a owl:Class ; + rdfs:label "parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@paronomasia> a owl:Class ; + rdfs:label "paronomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "A form of pun, in which words similar in sound but with different meanings are used" . + +<https://unl.tetras-libre.fr/rdf/schema#@part> a owl:Class ; + rdfs:label "part" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@passive> a owl:Class ; + rdfs:label "passive" ; + rdfs:subClassOf unl:voice ; + skos:definition "This house was built in 1895." . + +<https://unl.tetras-libre.fr/rdf/schema#@past> a owl:Class ; + rdfs:label "past" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time before the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@paucal> a owl:Class ; + rdfs:label "paucal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@pejorative> a owl:Class ; + rdfs:label "pejorative" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@per> a owl:Class ; + rdfs:label "per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@perfect> a owl:Class ; + rdfs:label "perfect" ; + rdfs:subClassOf unl:aspect ; + skos:definition "perfect" . + +<https://unl.tetras-libre.fr/rdf/schema#@perfective> a owl:Class ; + rdfs:label "perfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "completed" . + +<https://unl.tetras-libre.fr/rdf/schema#@periphrasis> a owl:Class ; + rdfs:label "periphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using several words instead of few" . + +<https://unl.tetras-libre.fr/rdf/schema#@permission> a owl:Class ; + rdfs:label "permission" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@permissive> a owl:Class ; + rdfs:label "permissive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "permissive" . + +<https://unl.tetras-libre.fr/rdf/schema#@persistent> a owl:Class ; + rdfs:label "persistent" ; + rdfs:subClassOf unl:aspect ; + skos:definition "persistent" . + +<https://unl.tetras-libre.fr/rdf/schema#@person> a owl:Class ; + rdfs:label "person" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@pleonasm> a owl:Class ; + rdfs:label "pleonasm" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "Use of superfluous or redundant words" . + +<https://unl.tetras-libre.fr/rdf/schema#@plus> a owl:Class ; + rdfs:label "plus" ; + rdfs:subClassOf unl:positive ; + skos:definition "intensified (very)" . + +<https://unl.tetras-libre.fr/rdf/schema#@polite> a owl:Class ; + rdfs:label "polite" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@polyptoton> a owl:Class ; + rdfs:label "polyptoton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of words derived from the same root" . + +<https://unl.tetras-libre.fr/rdf/schema#@polysyndeton> a owl:Class ; + rdfs:label "polysyndeton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of conjunctions" . + +<https://unl.tetras-libre.fr/rdf/schema#@possibility> a owl:Class ; + rdfs:label "possibility" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@posterior> a owl:Class ; + rdfs:label "posterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "after some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@prediction> a owl:Class ; + rdfs:label "prediction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@present> a owl:Class ; + rdfs:label "present" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@presumption> a owl:Class ; + rdfs:label "presumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prior_to> a owl:Class ; + rdfs:label "prior to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@probability> a owl:Class ; + rdfs:label "probability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@progressive> a owl:Class ; + rdfs:label "progressive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "ongoing" . + +<https://unl.tetras-libre.fr/rdf/schema#@prohibition> a owl:Class ; + rdfs:label "prohibition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@promise> a owl:Class ; + rdfs:label "promise" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prospective> a owl:Class ; + rdfs:label "prospective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "imminent" . + +<https://unl.tetras-libre.fr/rdf/schema#@proximal> a owl:Class ; + rdfs:label "proximal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@pursuant_to> a owl:Class ; + rdfs:label "pursuant to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@qua> a owl:Class ; + rdfs:label "qua" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@quadrual> a owl:Class ; + rdfs:label "quadrual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@recent> a owl:Class ; + rdfs:label "recent" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "close to the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@reciprocal> a owl:Class ; + rdfs:label "reciprocal" ; + rdfs:subClassOf unl:voice ; + skos:definition "They killed each other." . + +<https://unl.tetras-libre.fr/rdf/schema#@reflexive> a owl:Class ; + rdfs:label "reflexive" ; + rdfs:subClassOf unl:voice ; + skos:definition "He killed himself." . + +<https://unl.tetras-libre.fr/rdf/schema#@regarding> a owl:Class ; + rdfs:label "regarding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regardless_of> a owl:Class ; + rdfs:label "regardless of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regret> a owl:Class ; + rdfs:label "regret" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@relative> a owl:Class ; + rdfs:label "relative" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "relative clause head" . + +<https://unl.tetras-libre.fr/rdf/schema#@relief> a owl:Class ; + rdfs:label "relief" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@remote> a owl:Class ; + rdfs:label "remote" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "remote from the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@repetition> a owl:Class ; + rdfs:label "repetition" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Repeated usage of word(s)/group of words in the same sentence to create a poetic/rhythmic effect" . + +<https://unl.tetras-libre.fr/rdf/schema#@request> a owl:Class ; + rdfs:label "request" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@result> a owl:Class ; + rdfs:label "result" ; + rdfs:subClassOf unl:aspect ; + skos:definition "result" . + +<https://unl.tetras-libre.fr/rdf/schema#@reverential> a owl:Class ; + rdfs:label "reverential" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@right> a owl:Class ; + rdfs:label "right" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@round> a owl:Class ; + rdfs:label "round" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@same> a owl:Class ; + rdfs:label "same" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@save> a owl:Class ; + rdfs:label "save" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@side> a owl:Class ; + rdfs:label "side" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@since> a owl:Class ; + rdfs:label "since" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@single_quote> a owl:Class ; + rdfs:label "single quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@singular> a owl:Class ; + rdfs:label "singular" ; + rdfs:subClassOf unl:quantification ; + skos:definition "default" . + +<https://unl.tetras-libre.fr/rdf/schema#@slang> a owl:Class ; + rdfs:label "slang" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@so> a owl:Class ; + rdfs:label "so" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@speculation> a owl:Class ; + rdfs:label "speculation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@speech> a owl:Class ; + rdfs:label "speech" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "direct speech" . + +<https://unl.tetras-libre.fr/rdf/schema#@square_bracket> a owl:Class ; + rdfs:label "square bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@subsequent_to> a owl:Class ; + rdfs:label "subsequent to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@such> a owl:Class ; + rdfs:label "such" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@suggestion> a owl:Class ; + rdfs:label "suggestion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@superior> a owl:Class ; + rdfs:label "superior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@surprise> a owl:Class ; + rdfs:label "surprise" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@symploce> a owl:Class ; + rdfs:label "symploce" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "combination of anaphora and epistrophe" . + +<https://unl.tetras-libre.fr/rdf/schema#@synecdoche> a owl:Class ; + rdfs:label "synecdoche" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Form of metonymy, in which a part stands for the whole" . + +<https://unl.tetras-libre.fr/rdf/schema#@synesthesia> a owl:Class ; + rdfs:label "synesthesia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Description of one kind of sense impression by using words that normally describe another." . + +<https://unl.tetras-libre.fr/rdf/schema#@taboo> a owl:Class ; + rdfs:label "taboo" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@terminative> a owl:Class ; + rdfs:label "terminative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "cessation" . + +<https://unl.tetras-libre.fr/rdf/schema#@than> a owl:Class ; + rdfs:label "than" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thanks_to> a owl:Class ; + rdfs:label "thanks to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@that_of> a owl:Class ; + rdfs:label "that of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thing> a owl:Class ; + rdfs:label "thing" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@threat> a owl:Class ; + rdfs:label "threat" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@three> a owl:Class ; + rdfs:label "3" ; + rdfs:subClassOf unl:person ; + skos:definition "third person" . + +<https://unl.tetras-libre.fr/rdf/schema#@through> a owl:Class ; + rdfs:label "through" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@throughout> a owl:Class ; + rdfs:label "throughout" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@times> a owl:Class ; + rdfs:label "times" ; + rdfs:subClassOf unl:quantification ; + skos:definition "multiplicative" . + +<https://unl.tetras-libre.fr/rdf/schema#@title> a owl:Class ; + rdfs:label "title" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@to> a owl:Class ; + rdfs:label "to" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@top> a owl:Class ; + rdfs:label "top" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@topic> a owl:Class ; + rdfs:label "topic" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being talked about" . + +<https://unl.tetras-libre.fr/rdf/schema#@towards> a owl:Class ; + rdfs:label "towards" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@trial> a owl:Class ; + rdfs:label "trial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@tuple> a owl:Class ; + rdfs:label "tuple" ; + rdfs:subClassOf unl:quantification ; + skos:definition "collective" . + +<https://unl.tetras-libre.fr/rdf/schema#@two> a owl:Class ; + rdfs:label "2" ; + rdfs:subClassOf unl:person ; + skos:definition "second person addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@under> a owl:Class ; + rdfs:label "under" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@unit> a owl:Class ; + rdfs:label "unit" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@unless> a owl:Class ; + rdfs:label "unless" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@unlike> a owl:Class ; + rdfs:label "unlike" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@until> a owl:Class ; + rdfs:label "until" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@up> a owl:Class ; + rdfs:label "up" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@verb> a owl:Class ; + rdfs:label "verb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@versus> a owl:Class ; + rdfs:label "versus" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@vocative> a owl:Class ; + rdfs:label "vocative" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@warning> a owl:Class ; + rdfs:label "warning" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@weariness> a owl:Class ; + rdfs:label "weariness" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@wh> a owl:Class ; + rdfs:label "wh" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@with> a owl:Class ; + rdfs:label "with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_regard_to> a owl:Class ; + rdfs:label "with regard to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_relation_to> a owl:Class ; + rdfs:label "with relation to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_respect_to> a owl:Class ; + rdfs:label "with respect to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@within> a owl:Class ; + rdfs:label "within" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@without> a owl:Class ; + rdfs:label "without" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@worth> a owl:Class ; + rdfs:label "worth" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@yes> a owl:Class ; + rdfs:label "yes" ; + rdfs:subClassOf unl:polarity ; + skos:definition "affirmative" . + +<https://unl.tetras-libre.fr/rdf/schema#@zoomorphism> a owl:Class ; + rdfs:label "zoomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Applying animal characteristics to humans or gods" . + +unl:UNLKB_Top_Concept a owl:Class ; + rdfs:comment "Top concepts of a UNL Knoledge Base that shall not correspond to a UW." ; + rdfs:subClassOf unl:UNLKB_Node, + unl:Universal_Word . + +unl:UNL_Paragraph a owl:Class ; + rdfs:comment """For more information about UNL Paragraphs, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:and a owl:Class, + owl:ObjectProperty ; + rdfs:label "and" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "conjunction"@en ; + skos:definition "Used to state a conjunction between two entities."@en ; + skos:example """John and Mary = and(John;Mary) +both John and Mary = and(John;Mary) +neither John nor Mary = and(John;Mary) +John as well as Mary = and(John;Mary)"""@en . + +unl:ant a owl:Class, + owl:ObjectProperty ; + rdfs:label "ant" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "opposition or concession"@en ; + skos:definition "Used to indicate that two entities do not share the same meaning or reference. Also used to indicate concession."@en ; + skos:example """John is not Peter = ant(Peter;John) +3 + 2 != 6 = ant(6;3+2) +Although he's quiet, he's not shy = ant(he's not shy;he's quiet)"""@en . + +unl:bas a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas" ; + rdfs:subClassOf unl:Universal_Relation, + unl:per ; + rdfs:subPropertyOf unl:per ; + skos:altLabel "basis for a comparison" . + +unl:cnt a owl:Class, + owl:ObjectProperty ; + rdfs:label "cnt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "content or theme"@en ; + skos:definition "The object of an stative or experiental verb, or the theme of an entity."@en ; + skos:example """John has two daughters = cnt(have;two daughters) +the book belongs to Mary = cnt(belong;Mary) +the book contains many pictures = cnt(contain;many pictures) +John believes in Mary = cnt(believe;Mary) +John saw Mary = cnt(saw;Mary) +John loves Mary = cnt(love;Mary) +The explosion was heard by everyone = cnt(hear;explosion) +a book about Peter = cnt(book;Peter)"""@en . + +unl:con a owl:Class, + owl:ObjectProperty ; + rdfs:label "con" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "condition"@en ; + skos:definition "A condition of an event."@en ; + skos:example """If I see him, I will tell him = con(I will tell him;I see him) +I will tell him if I see him = con(I will tell him;I see him)"""@en . + +unl:coo a owl:Class, + owl:ObjectProperty ; + rdfs:label "coo" ; + rdfs:subClassOf unl:Universal_Relation, + unl:dur ; + rdfs:subPropertyOf unl:dur ; + skos:altLabel "co-occurrence" . + +unl:equ a owl:Class, + owl:ObjectProperty ; + rdfs:label "equ" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "synonym or paraphrase"@en ; + skos:definition "Used to indicate that two entities share the same meaning or reference. Also used to indicate semantic apposition."@en ; + skos:example """The morning star is the evening star = equ(evening star;morning star) +3 + 2 = 5 = equ(5;3+2) +UN (United Nations) = equ(UN;United Nations) +John, the brother of Mary = equ(John;the brother of Mary)"""@en . + +unl:exp a owl:Class, + owl:ObjectProperty ; + rdfs:label "exp" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "experiencer"@en ; + skos:definition "A participant in an action or process who receives a sensory impression or is the locus of an experiential event."@en ; + skos:example """John believes in Mary = exp(believe;John) +John saw Mary = exp(saw;John) +John loves Mary = exp(love;John) +The explosion was heard by everyone = exp(hear;everyone)"""@en . + +unl:fld a owl:Class, + owl:ObjectProperty ; + rdfs:label "fld" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "field"@en ; + skos:definition "Used to indicate the semantic domain of an entity."@en ; + skos:example "sentence (linguistics) = fld(sentence;linguistics)"@en . + +unl:gol a owl:Class, + owl:ObjectProperty ; + rdfs:label "gol" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "final state, place, destination or recipient"@en ; + skos:definition "The final state, place, destination or recipient of an entity or event."@en ; + skos:example """John received the book = gol(received;John) +John won the prize = gol(won;John) +John changed from poor to rich = gol(changed;rich) +John gave the book to Mary = gol(gave;Mary) +He threw the book at me = gol(threw;me) +John goes to NY = gol(go;NY) +train to NY = gol(train;NY)"""@en . + +unl:has_attribute a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:attribute ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_id a owl:AnnotationProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_index a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range xsd:integer ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_master_definition a owl:AnnotationProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range xsd:string ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_scope a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Scope ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_scope_of . + +unl:has_source a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:equivalentProperty unl:is_source_of . + +unl:has_target a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_target_of . + +unl:icl a owl:Class, + owl:ObjectProperty ; + rdfs:label "icl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "hyponymy, is a kind of"@en ; + skos:definition "Used to refer to a subclass of a class."@en ; + skos:example "Dogs are mammals = icl(mammal;dogs)"@en . + +unl:iof a owl:Class, + owl:ObjectProperty ; + rdfs:label "iof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is an instance of"@en ; + skos:definition "Used to refer to an instance or individual element of a class."@en ; + skos:example "John is a human being = iof(human being;John)"@en . + +unl:is_substructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_superstructure_of . + +unl:lpl a owl:Class, + owl:ObjectProperty ; + rdfs:label "lpl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "logical place"@en ; + skos:definition "A non-physical place where an entity or event occurs or a state exists."@en ; + skos:example """John works in politics = lpl(works;politics) +John is in love = lpl(John;love) +officer in command = lpl(officer;command)"""@en . + +unl:mat a owl:Class, + owl:ObjectProperty ; + rdfs:label "mat" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "material"@en ; + skos:definition "Used to indicate the material of which an entity is made."@en ; + skos:example """A statue in bronze = mat(statue;bronze) +a wood box = mat(box;wood) +a glass mug = mat(mug;glass)"""@en . + +unl:met a owl:Class, + owl:ObjectProperty ; + rdfs:label "met" ; + rdfs:subClassOf unl:ins ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:ins ; + skos:altLabel "method" . + +unl:nam a owl:Class, + owl:ObjectProperty ; + rdfs:label "nam" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "name"@en ; + skos:definition "The name of an entity."@en ; + skos:example """The city of New York = nam(city;New York) +my friend Willy = nam(friend;Willy)"""@en . + +unl:opl a owl:Class, + owl:ObjectProperty ; + rdfs:label "opl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "objective place"@en ; + skos:definition "A place affected by an action or process."@en ; + skos:example """John was hit in the face = opl(hit;face) +John fell in the water = opl(fell;water)"""@en . + +unl:pof a owl:Class, + owl:ObjectProperty ; + rdfs:label "pof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is part of"@en ; + skos:definition "Used to refer to a part of a whole."@en ; + skos:example "John is part of the family = pof(family;John)"@en . + +unl:pos a owl:Class, + owl:ObjectProperty ; + rdfs:label "pos" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "possessor"@en ; + skos:definition "The possessor of a thing."@en ; + skos:example """the book of John = pos(book;John) +John's book = pos(book;John) +his book = pos(book;he)"""@en . + +unl:ptn a owl:Class, + owl:ObjectProperty ; + rdfs:label "ptn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "partner"@en ; + skos:definition "A secondary (non-focused) participant in an event."@en ; + skos:example """John fights with Peter = ptn(fight;Peter) +John wrote the letter with Peter = ptn(wrote;Peter) +John lives with Peter = ptn(live;Peter)"""@en . + +unl:pur a owl:Class, + owl:ObjectProperty ; + rdfs:label "pur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "purpose"@en ; + skos:definition "The purpose of an entity or event."@en ; + skos:example """John left early in order to arrive early = pur(John left early;arrive early) +You should come to see us = pur(you should come;see us) +book for children = pur(book;children)"""@en . + +unl:qua a owl:Class, + owl:ObjectProperty ; + rdfs:label "qua" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "quantity"@en ; + skos:definition "Used to express the quantity of an entity."@en ; + skos:example """two books = qua(book;2) +a group of students = qua(students;group)"""@en . + +unl:rsn a owl:Class, + owl:ObjectProperty ; + rdfs:label "rsn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "reason"@en ; + skos:definition "The reason of an entity or event."@en ; + skos:example """John left because it was late = rsn(John left;it was late) +John killed Mary because of John = rsn(killed;John)"""@en . + +unl:seq a owl:Class, + owl:ObjectProperty ; + rdfs:label "seq" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "consequence"@en ; + skos:definition "Used to express consequence."@en ; + skos:example "I think therefore I am = seq(I think;I am)"@en . + +unl:src a owl:Class, + owl:ObjectProperty ; + rdfs:label "src" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "initial state, place, origin or source"@en ; + skos:definition "The initial state, place, origin or source of an entity or event."@en ; + skos:example """John came from NY = src(came;NY) +John is from NY = src(John;NY) +train from NY = src(train;NY) +John changed from poor into rich = src(changed;poor) +John received the book from Peter = src(received;Peter) +John withdrew the money from the cashier = src(withdrew;cashier)"""@en . + +unl:tmf a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmf" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "initial time"@en ; + skos:definition "The initial time of an entity or event."@en ; + skos:example "John worked since early = tmf(worked;early)"@en . + +unl:tmt a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmt" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "final time"@en ; + skos:definition "The final time of an entity or event."@en ; + skos:example "John worked until late = tmt(worked;late)"@en . + +unl:via a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas", + "met", + "via" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "intermediate state or place"@en ; + skos:definition "The intermediate place or state of an entity or event."@en ; + skos:example """John went from NY to Geneva through Paris = via(went;Paris) +The baby crawled across the room = via(crawled;across the room)"""@en . + +dash:ActionGroup a dash:ShapeClass ; + rdfs:label "Action group" ; + rdfs:comment "A group of ResourceActions, used to arrange items in menus etc. Similar to sh:PropertyGroups, they may have a sh:order and should have labels (in multiple languages if applicable)." ; + rdfs:subClassOf rdfs:Resource . + +dash:AllObjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All objects target" ; + rdfs:comment "A target containing all objects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allObjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All objects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?anyS ?anyP ?this . +}""" . + +dash:AllSubjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All subjects target" ; + rdfs:comment "A target containing all subjects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allSubjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All subjects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this ?anyP ?anyO . +}""" . + +dash:ClosedByTypesConstraintComponent-closedByTypes a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to indicate that the focus nodes are closed by their types. A constraint violation is reported for each property value of the focus node where the property is not among those that are explicitly declared via sh:property/sh:path in any of the rdf:types of the focus node (and their superclasses). The property rdf:type is always permitted." ; + sh:maxCount 1 ; + sh:path dash:closedByTypes . + +dash:CoExistsWithConstraintComponent-coExistsWith a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "The properties that must co-exist with the surrounding property (path). If the surrounding property path has any value then the given property must also have a value, and vice versa." ; + sh:name "co-exists with" ; + sh:nodeKind sh:IRI ; + sh:path dash:coExistsWith . + +dash:ConstraintReificationShape-message a sh:PropertyShape ; + dash:singleLine true ; + sh:name "messages" ; + sh:nodeKind sh:Literal ; + sh:or dash:StringOrLangString ; + sh:path sh:message . + +dash:ConstraintReificationShape-severity a sh:PropertyShape ; + sh:class sh:Severity ; + sh:maxCount 1 ; + sh:name "severity" ; + sh:nodeKind sh:IRI ; + sh:path sh:severity . + +dash:GraphValidationTestCase a dash:ShapeClass ; + rdfs:label "Graph validation test case" ; + rdfs:comment "A test case that performs SHACL constraint validation on the whole graph and compares the results with the expected validation results stored with the test case. By default this excludes meta-validation (i.e. the validation of the shape definitions themselves). If that's desired, set dash:validateShapes to true." ; + rdfs:subClassOf dash:ValidationTestCase . + +dash:HasValueInConstraintComponent-hasValueIn a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:description "At least one of the value nodes must be a member of the given list." ; + sh:name "has value in" ; + sh:node dash:ListShape ; + sh:path dash:hasValueIn . + +dash:HasValueWithClassConstraintComponent-hasValueWithClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "One of the values of the property path must be an instance of the given class." ; + sh:name "has value with class" ; + sh:nodeKind sh:IRI ; + sh:path dash:hasValueWithClass . + +dash:IndexedConstraintComponent-indexed a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to activate indexing for this property." ; + sh:maxCount 1 ; + sh:name "indexed" ; + sh:path dash:indexed . + +dash:ListNodeShape a sh:NodeShape ; + rdfs:label "List node shape" ; + rdfs:comment "Defines constraints on what it means for a node to be a node within a well-formed RDF list. Note that this does not check whether the rdf:rest items are also well-formed lists as this would lead to unsupported recursion." ; + sh:or ( [ sh:hasValue () ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:rest ] ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:rest ] ] ) . + +dash:ListShape a sh:NodeShape ; + rdfs:label "List shape" ; + rdfs:comment """Defines constraints on what it means for a node to be a well-formed RDF list. + +The focus node must either be rdf:nil or not recursive. Furthermore, this shape uses dash:ListNodeShape as a "helper" to walk through all members of the whole list (including itself).""" ; + sh:or ( [ sh:hasValue () ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + dash:nonRecursive true ; + sh:path [ sh:oneOrMorePath rdf:rest ] ] ] ) ; + sh:property [ a sh:PropertyShape ; + rdfs:comment "Each list member (including this node) must be have the shape dash:ListNodeShape." ; + sh:node dash:ListNodeShape ; + sh:path [ sh:zeroOrMorePath rdf:rest ] ] . + +dash:MultiViewer a dash:ShapeClass ; + rdfs:label "Multi viewer" ; + rdfs:comment "A viewer for multiple/all values at once." ; + rdfs:subClassOf dash:Viewer . + +dash:NonRecursiveConstraintComponent-nonRecursive a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description """Used to state that a property or path must not point back to itself. + +For example, "a person cannot have itself as parent" can be expressed by setting dash:nonRecursive=true for a given sh:path. + +To express that a person cannot have itself among any of its (recursive) parents, use a sh:path with the + operator such as ex:parent+.""" ; + sh:maxCount 1 ; + sh:name "non-recursive" ; + sh:path dash:nonRecursive . + +dash:ParameterConstraintComponent-parameter a sh:Parameter ; + sh:path sh:parameter . + +dash:PrimaryKeyConstraintComponent-uriStart a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "The start of the URIs of well-formed resources. If specified then the associated property/path serves as \"primary key\" for all target nodes (instances). All such target nodes need to have a URI that starts with the given string, followed by the URI-encoded value of the primary key property." ; + sh:maxCount 1 ; + sh:name "URI start" ; + sh:path dash:uriStart . + +dash:RDFQueryJSLibrary a sh:JSLibrary ; + rdfs:label "rdfQuery JavaScript Library" ; + sh:jsLibraryURL "http://datashapes.org/js/rdfquery.js"^^xsd:anyURI . + +dash:ReifiableByConstraintComponent-reifiableBy a sh:Parameter ; + sh:class sh:NodeShape ; + sh:description "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Also, SHACL validators can use it to determine how to validate reified triples. Use dash:None to indicate that no reification should be permitted." ; + sh:maxCount 1 ; + sh:name "reifiable by" ; + sh:nodeKind sh:IRI ; + sh:path dash:reifiableBy . + +dash:RootClassConstraintComponent-rootClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "The root class." ; + sh:name "root class" ; + sh:nodeKind sh:IRI ; + sh:path dash:rootClass . + +dash:ScriptConstraint a dash:ShapeClass ; + rdfs:label "Script constraint" ; + rdfs:comment """The class of constraints that are based on Scripts. Depending on whether dash:onAllValues is set to true, these scripts can access the following pre-assigned variables: + +- focusNode: the focus node of the constraint (a NamedNode) +- if dash:onAllValues is not true: value: the current value node (e.g. a JavaScript string for xsd:string literals, a number for numeric literals or true or false for xsd:boolean literals. All other literals become LiteralNodes, and non-literals become instances of NamedNode) +- if dash:onAllValues is true: values: an array of current value nodes, as above. + +If the expression returns an array then each array member will be mapped to one validation result, following the mapping rules below. + +For string results, a validation result will use the string as sh:message. +For boolean results, a validation result will be produced if the result is false (true means no violation). + +For object results, a validation result will be produced using the value of the field "message" of the object as result message. If the field "value" has a value then this will become the sh:value in the violation. + +Unless another sh:message has been directly returned, the sh:message of the dash:ScriptConstraint will be used, similar to sh:message at SPARQL Constraints. These sh:messages can access the values {$focusNode}, ${value} etc as template variables.""" ; + rdfs:subClassOf dash:Script . + +dash:ScriptConstraintComponent-scriptConstraint a sh:Parameter ; + sh:class dash:ScriptConstraint ; + sh:description "The Script constraint(s) to apply." ; + sh:name "script constraint" ; + sh:path dash:scriptConstraint . + +dash:SingleLineConstraintComponent-singleLine a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to state that the lexical form of literal value nodes must not contain any line breaks. False to state that line breaks are explicitly permitted." ; + sh:group tosh:StringConstraintsPropertyGroup ; + sh:maxCount 1 ; + sh:name "single line" ; + sh:order 30.0 ; + sh:path dash:singleLine . + +dash:StemConstraintComponent-stem a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "If specified then every value node must be an IRI and the IRI must start with the given string value." ; + sh:maxCount 1 ; + sh:name "stem" ; + sh:path dash:stem . + +dash:StringOrLangString a rdf:List ; + rdfs:label "String or langString" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string or rdf:langString." . + +dash:SubSetOfConstraintComponent-subSetOf a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "Can be used to state that all value nodes must also be values of a specified other property at the same focus node." ; + sh:name "sub-set of" ; + sh:nodeKind sh:IRI ; + sh:path dash:subSetOf . + +dash:SymmetricConstraintComponent-symmetric a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "If set to true then if A relates to B then B must relate to A." ; + sh:maxCount 1 ; + sh:name "symmetric" ; + sh:path dash:symmetric . + +dash:UniqueValueForClassConstraintComponent-uniqueValueForClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "States that the values of the property must be unique for all instances of a given class (and its subclasses)." ; + sh:name "unique value for class" ; + sh:nodeKind sh:IRI ; + sh:path dash:uniqueValueForClass . + +dash:ValidationTestCase a dash:ShapeClass ; + rdfs:label "Validation test case" ; + dash:abstract true ; + rdfs:comment "Abstract superclass for test cases concerning SHACL constraint validation. Future versions may add new kinds of validatin test cases, e.g. to validate a single resource only." ; + rdfs:subClassOf dash:TestCase . + +dash:closedByTypes a rdf:Property ; + rdfs:label "closed by types" . + +dash:coExistsWith a rdf:Property ; + rdfs:label "co-exists with" ; + rdfs:comment "Specifies a property that must have a value whenever the property path has a value, and must have no value whenever the property path has no value." ; + rdfs:range rdf:Property . + +dash:hasClass a sh:SPARQLAskValidator ; + rdfs:label "has class" ; + sh:ask """ + ASK { + $value rdf:type/rdfs:subClassOf* $class . + } + """ ; + sh:message "Value does not have class {$class}" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxExclusive a sh:SPARQLAskValidator ; + rdfs:label "has max exclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than (<) the provided ?maxExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value < $maxExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxInclusive a sh:SPARQLAskValidator ; + rdfs:label "has max inclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than or equal to (<=) the provided ?maxInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value <= $maxInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxLength a sh:SPARQLAskValidator ; + rdfs:label "has max length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given maximum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) <= $maxLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinExclusive a sh:SPARQLAskValidator ; + rdfs:label "has min exclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than (>) the provided ?minExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value > $minExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinInclusive a sh:SPARQLAskValidator ; + rdfs:label "has min inclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than or equal to (>=) the provided ?minInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value >= $minInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinLength a sh:SPARQLAskValidator ; + rdfs:label "has min length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given minimum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) >= $minLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasNodeKind a sh:SPARQLAskValidator ; + rdfs:label "has node kind" ; + rdfs:comment "Checks whether a given node (?value) has a given sh:NodeKind (?nodeKind). For example, sh:hasNodeKind(42, sh:Literal) = true." ; + sh:ask """ + ASK { + FILTER ((isIRI($value) && $nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral ) ) || + (isLiteral($value) && $nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral ) ) || + (isBlank($value) && $nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral ) )) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasPattern a sh:SPARQLAskValidator ; + rdfs:label "has pattern" ; + rdfs:comment "Checks whether the string representation of a given node (?value) matches a given regular expression (?pattern). Returns false if the value is a blank node." ; + sh:ask "ASK { FILTER (!isBlank($value) && IF(bound($flags), regex(str($value), $pattern, $flags), regex(str($value), $pattern))) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasRootClass a sh:SPARQLAskValidator ; + rdfs:label "has root class" ; + sh:ask """ASK { + $value rdfs:subClassOf* $rootClass . +}""" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasStem a sh:SPARQLAskValidator ; + rdfs:label "has stem" ; + rdfs:comment "Checks whether a given node is an IRI starting with a given stem." ; + sh:ask "ASK { FILTER (isIRI($value) && STRSTARTS(str($value), $stem)) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasValueIn a rdf:Property ; + rdfs:label "has value in" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be a member of the given list." ; + rdfs:range rdf:List . + +dash:hasValueWithClass a rdf:Property ; + rdfs:label "has value with class" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be an instance of a given class." ; + rdfs:range rdfs:Class . + +dash:indexed a rdf:Property ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:isIn a sh:SPARQLAskValidator ; + rdfs:label "is in" ; + sh:ask """ + ASK { + GRAPH $shapesGraph { + $in (rdf:rest*)/rdf:first $value . + } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isLanguageIn a sh:SPARQLAskValidator ; + rdfs:label "is language in" ; + sh:ask """ + ASK { + BIND (lang($value) AS ?valueLang) . + FILTER EXISTS { + GRAPH $shapesGraph { + $languageIn (rdf:rest*)/rdf:first ?lang . + FILTER (langMatches(?valueLang, ?lang)) + } } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isSubClassOf-subclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) subclass." ; + sh:name "subclass" ; + sh:path dash:subclass . + +dash:isSubClassOf-superclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) superclass." ; + sh:name "superclass" ; + sh:order 1.0 ; + sh:path dash:superclass . + +dash:reifiableBy a rdf:Property ; + rdfs:label "reifiable by" ; + rdfs:comment "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Use dash:None to indicate that no reification should be permitted." ; + rdfs:domain sh:PropertyShape ; + rdfs:range sh:NodeShape . + +dash:rootClass a rdf:Property ; + rdfs:label "root class" . + +dash:singleLine a rdf:Property ; + rdfs:label "single line" ; + rdfs:range xsd:boolean . + +dash:stem a rdf:Property ; + rdfs:label "stem"@en ; + rdfs:comment "Specifies a string value that the IRI of the value nodes must start with."@en ; + rdfs:range xsd:string . + +dash:subSetOf a rdf:Property ; + rdfs:label "sub set of" . + +dash:symmetric a rdf:Property ; + rdfs:label "symmetric" ; + rdfs:comment "True to declare that the associated property path is symmetric." . + +dash:uniqueValueForClass a rdf:Property ; + rdfs:label "unique value for class" . + +default3:ontology a owl:Ontology ; + owl:imports <https://unl.tetras-libre.fr/rdf/schema> . + +<http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> a unl:UW_Lexeme ; + rdfs:label "TRANSEC-NC" ; + unl:has_occurrence default3:occurence_TRANSEC-NC . + +<http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> a unl:UW_Lexeme ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:has_occurrence default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_occurrence default3:occurence_capacity-icl-volume-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> a unl:UW_Lexeme ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:has_occurrence default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_occurrence default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:has_occurrence default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_occurrence default3:occurence_mission-icl-assignment-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_occurrence default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> a unl:UW_Lexeme ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_occurrence default3:occurence_operator-icl-causal-agent-icl-person-- . + +<http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_occurrence default3:occurence_radio-channel-icl-communication-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_occurrence default3:occurence_system-icl-instrumentality-icl-thing-- . + +rdf:object a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:object . + +rdf:predicate a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:predicate . + +rdf:subject a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:subject . + +rdfs:isDefinedBy a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:isDefinedBy, + rdfs:seeAlso . + +sh:SPARQLExecutable dash:abstract true . + +sh:Validator dash:abstract true . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +cts:batch_execution a owl:Class, + sh:NodeShape ; + rdfs:label "batch execution" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:bypass-reification, + cts:complement-composite-class, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-domain-of-relation-property, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:compute-range-of-relation-property, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:define-uw-id, + cts:extend-atom-list-net, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:link-instances-by-relation-property, + cts:link-to-scope-entry, + cts:specify-axis-of-atom-list-net, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:old_add-event a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. + # Object Property + ?newEventObjectPropertyUri a owl:ObjectProperty. + ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. + ?newEventObjectPropertyUri rdfs:label ?verbConcept. + ?newEventObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: entity + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). + # URI (for object property) + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?eventObjectPropertyUri). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_add-state-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. + ?newStatePropertyUri rdfs:label ?statePropertyLabel. + ?newStatePropertyUri sys:from_structure ?req. + # Object Property + ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. + ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. + ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. + ?newStatePropertyObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: state property + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:is_class ?statePropertyClass. + BIND (concat( ?targetOntologyURI, ?statePropertyClass) AS ?c1). + BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). + BIND (uri( ?c1) AS ?statePropertyClassUri). + BIND (uri(?c2) AS ?newStatePropertyUri). + # URI (for object property) + sys:State_Property sys:has_object_property ?statePropertyObjectProperty. + BIND (concat( ?targetOntologyURI, ?statePropertyObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). + BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_compose-agt-verb-obj-as-simple-event a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event +CONSTRUCT { + # Net: Event + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:Event. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:action_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: agt(net1, net2) et obj(net1, net3) + ?uw1 unl:agt ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:event rdfs:label ?eventLabel. + BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compose-aoj-verb-obj-as-simple-state-property a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property +CONSTRUCT { + # Net: State Property + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:State_Property. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:attributive_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: aoj(net1, net2) et obj(net1, net3) + ?uw1 unl:aoj ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for State Property Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:state_property rdfs:label ?statePropertyLabel. + BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compute-domain-range-of-event-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?newEventObjectPropertyUri rdfs:domain ?domainClass. + ?newEventObjectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.332 . + +cts:old_compute-domain-range-of-state-property-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?objectPropertyUri rdfs:domain ?domainClass. + ?objectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:has_object_property ?objectPropertyRef. + BIND (concat( ?targetOntologyURI, ?objectPropertyRef) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +}""" ; + sh:order 0.332 . + +unl:has_occurrence a owl:ObjectProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range unl:UW_Occurrence ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_occurrence_of . + +unl:is_occurrence_of a owl:ObjectProperty ; + rdfs:domain unl:UW_Occurrence ; + rdfs:range unl:UW_Lexeme ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:has_occurrence . + +unl:is_scope_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Scope ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_source_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_superstructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_target_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +dash:PropertyAutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Property auto-complete editor" ; + rdfs:comment "An editor for properties that are either defined as instances of rdf:Property or used as IRI values of sh:path. The component uses auto-complete to find these properties by their rdfs:labels or sh:names." . + +dash:PropertyLabelViewer a dash:SingleViewer ; + rdfs:label "Property label viewer" ; + rdfs:comment "A viewer for properties that renders a hyperlink using the display label or sh:name, allowing users to either navigate to the rdf:Property resource or the property shape definition. Should be used in conjunction with PropertyAutoCompleteEditor." . + +dash:Widget a dash:ShapeClass ; + rdfs:label "Widget" ; + dash:abstract true ; + rdfs:comment "Base class of user interface components that can be used to display or edit value nodes." ; + rdfs:subClassOf rdfs:Resource . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_system-icl-instrumentality-icl-thing-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person-- a unl:ben ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- a unl:obj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC a unl:mod ; + unl:has_source default3:occurence_capacity-icl-volume-icl-thing-- ; + unl:has_target default3:occurence_TRANSEC-NC . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- a unl:agt ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:man ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- a unl:res ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:has_target default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:operator-icl-causal-agent-icl-person--_mod_scope-01 a unl:mod ; + unl:has_source default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_target default3:scope_01 . + +<http://unsel.rdf-unl.org/uw_lexeme#document> a unl:UNL_Document ; + unl:is_superstructure_of default3:sentence_0 . + +rdfs:seeAlso a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:seeAlso . + +sh:Function dash:abstract true . + +sh:Shape dash:abstract true . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +cts:append-domain-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible domain, actor to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_source ?sourceObject. + ?net1 net:has_possible_domain ?domainClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): actor of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?sourceObject. + # condition: agt(net1, net2) + ?uw1 ( unl:agt | unl:aoj ) ?uw2. + # Possible Domain + { ?sourceObject net:has_concept ?domainClass. } + UNION + { ?sourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_concept ?domainClass. } +}""" ; + sh:order 2.42 . + +cts:append-range-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible range, target to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_target ?targetObject. + ?net1 net:has_possible_range ?rangeClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): target of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?targetObject. + # condition: agt(net1, net2) + ?uw1 (unl:obj|unl:res) ?uw2. + # Possible Domain + { ?targetObject net:has_concept ?rangeClass. } + UNION + { ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. } +}""" ; + sh:order 2.42 . + +cts:bypass-reification a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Bypass reification (extension of UNL relations) +CONSTRUCT { + ?node1 ?unlRel ?node2. +} +WHERE { + ?rel unl:has_source ?node1. + ?rel unl:has_target ?node2. + ?rel a ?unlRel. +} """ ; + sh:order 1.1 . + +cts:compose-atom-with-list-by-mod-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and a list net (with distinct item classes) +CONSTRUCT { + # Object: Composite + ?newObject a net:Object. + ?newObject net:objectType net:composite. + ?newObject net:has_node ?uw1, ?uw3. + ?newObject net:has_mother_class ?net1Mother. + ?newObject net:has_parent_class ?net1Class. + ?newObject net:has_class ?subConcept. + ?newObject net:has_concept ?subConcept. + ?newObject net:has_feature ?net2Item. + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?newObject. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_mother_class ?net1Mother. + ?net1Object net:has_parent_class ?net1ParentClass. + ?net1Object net:has_class ?net1Class. + ?net1Object net:has_concept ?net1Concept. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:type ?listSubType. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass != ?net2ParentClass ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + BIND (concat( ?net2Concept, '_', ?net1Concept) AS ?subConcept). + # URI (for Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?objectRef, ?compositeLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.32 . + +cts:compose-atom-with-list-by-mod-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and an list net (with same item classes) +CONSTRUCT { + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?net2Item. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_parent_class ?net1ParentClass. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass = ?net2ParentClass ). + # Label: Id, subEntity + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.33 . + +cts:compute-class-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-class-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_mother_class_uri ?motherClassUri. + ?object net:has_parent_class_uri ?parentClassUri. + ?object net:has_class_uri ?objectClassUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_mother_class ?motherClass. + ?object net:has_parent_class ?parentClass. + ?object net:has_class ?objectClass. + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newClassRef ?newClassRef. + BIND (str(?motherClass) AS ?s1). + # TODO: BIND (concat( ?targetOntologyURI, ?motherClass) AS ?s1). + BIND (concat(?targetOntologyURI, ?parentClass) AS ?s2). + BIND (concat(?targetOntologyURI, ?newClassRef, ?objectClass) AS ?s3). + BIND (uri( ?s1) AS ?motherClassUri). + BIND (uri( ?s2) AS ?parentClassUri). + BIND (uri(?s3) AS ?objectClassUri). +} +VALUES ?objectType { + net:atom + net:composite +}""" ; + sh:order 2.91 . + +cts:compute-instance-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-instance-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_instance_uri ?objectInstanceUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:has_parent_class ?parentClass. + ?object net:has_instance ?objectInstance. + # URI (for classes and instance) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat( ?targetOntologyURI, ?parentClass) AS ?s1). + BIND (concat(?s1, '#', ?objectInstance) AS ?s2). + BIND (uri(?s2) AS ?objectInstanceUri). +}""" ; + sh:order 2.92 . + +cts:compute-property-uri-of-relation-object a sh:SPARQLRule ; + rdfs:label "compute-property-uri-of-relation-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_property_uri ?objectPropertyUri. +} +WHERE { + # Object of type Relation + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_parent_property ?parentProperty. + ?object net:has_concept ?objectConcept. + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newPropertyRef ?newPropertyRef. + ?parentProperty sys:has_reference ?relationReference. + BIND (concat( ?targetOntologyURI, ?newPropertyRef, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?objectConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +} +VALUES ?objectType { + net:relation +}""" ; + sh:order 2.91 . + +cts:create-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create Atom Net (entity) +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:atom. + ?newObject net:has_node ?uw1. + ?newObject net:has_mother_class ?atomMother. + ?newObject net:has_parent_class ?atomClass. + ?newObject net:has_class ?concept1. + ?newObject net:has_concept ?concept1. + # Net + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf ?atomMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_atom ?newObject. +} +WHERE { + # Atom Description (from System Ontology) + ?atomMother rdfs:subClassOf* sys:Structure. + ?atomMother sys:is_class ?atomClass. + ?atomMother seedSchema:has_uw-regex-seed ?restriction. + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Filter on label + ?uw1 rdfs:label ?uw1Label. + FILTER ( regex(str(?uw1Label),str(?restriction)) ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?concept1). + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?objectRef, ?atomLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Atom Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + BIND (concat( ?netURI, ?classReference, '-', ?atomClass, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.11 . + +cts:create-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create relation net +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:relation. + ?newObject net:has_node ?uw1. + ?newObject net:has_parent_property ?relationMother. + ?newObject net:has_concept ?verbConcept. + # create: Relation Net + ?newNet a net:Instance. + ?newNet net:type net:relation. + ?newNet net:relationOf ?relationMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_relation ?newObject. +} +WHERE { + # Relation Description (from System Ontology) + ?targetProperty rdfs:subPropertyOf* sys:Relation. + ?targetProperty sys:has_mother_property ?relationMother. + ?targetProperty sys:has_reference ?relationReference. + # -- old --- ?targetProperty sys:has_restriction_on_class ?classRestriction. + ?targetProperty seedSchema:has_class-restriction-seed ?classRestriction. + # Atom Net (net1): restricted net according to its atom category (atomOf) + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?classRestriction. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Verb Actor + ?net1 net:has_atom ?verbObject. + ?verbObject net:has_mother_class ?verbMother. + ?verbObject net:has_parent_class ?verbParentClass. + ?verbObject net:has_concept ?verbConcept. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:relation rdfs:label ?relationLabel. + BIND (concat( ?netURI, ?objectRef, ?relationLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Property sys:has_reference ?propertyReference. + BIND (concat( ?netURI, ?propertyReference, '-', ?relationReference, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.41 . + +cts:create-unary-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create an unary Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:unary_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw0 unl:mod ?uw1. + FILTER NOT EXISTS { ?uw1 (unl:and|unl:or) ?uw2 } + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?classReference, '-', ?listLabel, '-', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:define-uw-id a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Define an ID for each UW (occurrence) +CONSTRUCT { + ?uw1 unl:has_id ?uwId. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Label(s) / URI + ?req unl:has_id ?reqId. + ?uw1 rdfs:label ?uw1Label. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?rawConcept). + BIND (REPLACE(?rawConcept, " ", "-") AS ?concept1) + BIND (strafter(str(?uw1), "---") AS ?numOcc). + BIND (concat( ?reqId, '_', ?concept1, ?numOcc) AS ?uwId). +} """ ; + sh:order 1.3 . + +cts:extend-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Extend an Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:has_node ?uw2. + ?net1 net:has_item ?object2. +} +WHERE { + # Net1: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # extension: disjunction of UW + ?uw1 (unl:or|unl:and) ?uw2. + # Net2: Atom + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?object2. +}""" ; + sh:order 2.22 . + +cts:init-conjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a conjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:conjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:and ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:init-disjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a disjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:disjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:or ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:instantiate-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate atom net +CONSTRUCT { + # Object: entity + ?atomObject1 net:has_instance ?instanceName. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?atomObject1. + # condition: agt/obj(uw0, uw1) + ?uw0 (unl:agt | unl:obj | unl:aoj) ?uw1. + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label: id, name + ?uw1 unl:has_id ?uw1Id. + BIND (?uw1Id AS ?instanceName). +}""" ; + sh:order 2.12 . + +cts:instantiate-composite-in-list-by-extension-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate composite in list by extension of instances from parent element +CONSTRUCT { + ?itemObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?itemObject. + # Filter + FILTER NOT EXISTS { ?itemObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.341 . + +cts:instantiate-composite-in-list-by-extension-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate entities in class list by extension of instances (2) +CONSTRUCT { + ?net2SubObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?net1SubObject. + ?net1SubObject net:has_concept ?sameEntity. + # net2: Another List + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_parent ?net2MainObject. + ?net2MainObject net:has_concept ?sameEntity. + ?net2 net:has_item ?net2SubObject. + # Filter + FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.342 . + +cts:link-to-scope-entry a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link UNL relation to scope entry +# (by connecting the source node of the scope to the entry node of the scope) +CONSTRUCT { + ?node1Occ ?unlRel ?node2Occ. +} +WHERE { + ?scope rdf:type unl:UNL_Scope. + ?node1Occ unl:is_source_of ?rel. + ?rel unl:has_target ?scope. + ?scope unl:is_scope_of ?scopeRel. + ?scopeRel unl:has_source ?node2Occ. + ?node2Occ unl:has_attribute ".@entry". + ?rel a ?unlRel. +} """ ; + sh:order 1.2 . + +cts:old_link-classes-by-relation-property a sh:SPARQLRule ; + rdfs:label "link-classes-by-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link two classes by relation property (according existence of domain and range) +CONSTRUCT { + # relation between domain/range classes + ?domainClassUri ?propertyUri ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?propertyUri rdfs:domain ?domainClass. + ?propertyUri rdfs:range ?rangeClass. + BIND (uri( ?domainClass) AS ?domainClassUri). + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 0.33 . + +cts:specify-axis-of-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Specify axis of Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:listBy ?unlRel. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Net: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_node ?uw1. + # selection: target UW of modifier (mod) + ?uw0 ?unlRel ?uw1. + FILTER NOT EXISTS { ?net1 net:has_node ?uw0 }. +}""" ; + sh:order 2.23 . + +cts:update-batch-execution-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:batch_execution sh:rule ?rule. +} +WHERE { + ?nodeShapes sh:rule ?rule. +} +VALUES ?nodeShapes { + cts:preprocessing + cts:net_extension + cts:generation +}""" ; + sh:order 1.09 . + +cts:update-generation-class-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:class_generation sh:rule ?rule. +} +WHERE { + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.1") ). } + UNION + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.2") ). } +}""" ; + sh:order 1.031 . + +cts:update-generation-relation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:relation_generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.3") ). +}""" ; + sh:order 1.032 . + +cts:update-generation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.") ). +}""" ; + sh:order 1.03 . + +cts:update-net-extension-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:net_extension sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"2.") ). +}""" ; + sh:order 1.02 . + +cts:update-preprocessing-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:preprocessing sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"1.") ). +}""" ; + sh:order 1.01 . + +<https://unl.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:imports <http://www.w3.org/2008/05/skos-xl> ; + owl:versionIRI unl:0.1 . + +<https://unl.tetras-libre.fr/rdf/schema#@indef> a owl:Class ; + rdfs:label "indef" ; + rdfs:subClassOf unl:specification ; + skos:definition "indefinite" . + +unl:UNLKB_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:UNL_Graph_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:animacy a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:degree a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:dur a owl:Class, + owl:ObjectProperty ; + rdfs:label "dur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "duration or co-occurrence"@en ; + skos:definition "The duration of an entity or event."@en ; + skos:example """John worked for five hours = dur(worked;five hours) +John worked hard the whole summer = dur(worked;the whole summer) +John completed the task in ten minutes = dur(completed;ten minutes) +John was reading while Peter was cooking = dur(John was reading;Peter was cooking)"""@en . + +unl:figure_of_speech a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:ins a owl:Class, + owl:ObjectProperty ; + rdfs:label "ins" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "instrument or method"@en ; + skos:definition "An inanimate entity or method that an agent uses to implement an event. It is the stimulus or immediate physical cause of an event."@en ; + skos:example """The cook cut the cake with a knife = ins(cut;knife) +She used a crayon to scribble a note = ins(used;crayon) +That window was broken by a hammer = ins(broken;hammer) +He solved the problem with a new algorithm = ins(solved;a new algorithm) +He solved the problem using an algorithm = ins(solved;using an algorithm) +He used Mathematics to solve the problem = ins(used;Mathematics)"""@en . + +unl:per a owl:Class, + owl:ObjectProperty ; + rdfs:label "per" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "proportion, rate, distribution, measure or basis for a comparison"@en ; + skos:definition "Used to indicate a measure or quantification of an event."@en ; + skos:example """The course was split in two parts = per(split;in two parts) +twice a week = per(twice;week) +The new coat costs $70 = per(cost;$70) +John is more beautiful than Peter = per(beautiful;Peter) +John is as intelligent as Mary = per(intelligent;Mary) +John is the most intelligent of us = per(intelligent;we)"""@en . + +unl:relative_tense a owl:Class ; + rdfs:subClassOf unl:time . + +unl:superlative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:time a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:unlAnnotationProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf unl:unlProperty . + +unl:unlDatatypeProperty a owl:DatatypeProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:Action a dash:ShapeClass ; + rdfs:label "Action" ; + dash:abstract true ; + rdfs:comment "An executable command triggered by an agent, backed by a Script implementation. Actions may get deactivated using sh:deactivated." ; + rdfs:subClassOf dash:Script, + sh:Parameterizable . + +dash:Editor a dash:ShapeClass ; + rdfs:label "Editor" ; + dash:abstract true ; + rdfs:comment "The class of widgets for editing value nodes." ; + rdfs:subClassOf dash:Widget . + +dash:ResourceAction a dash:ShapeClass ; + rdfs:label "Resource action" ; + dash:abstract true ; + rdfs:comment "An Action that can be executed for a selected resource. Such Actions show up in context menus once they have been assigned a sh:group." ; + rdfs:subClassOf dash:Action . + +dash:Viewer a dash:ShapeClass ; + rdfs:label "Viewer" ; + dash:abstract true ; + rdfs:comment "The class of widgets for viewing value nodes." ; + rdfs:subClassOf dash:Widget . + +default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- a unl:or ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_CDC-icl-object-icl-place-icl-thing--- ; + unl:has_target default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- a unl:mod ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- ; + unl:has_target default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +rdf:first a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:subPropertyOf rdf:first . + +sh:Parameterizable dash:abstract true . + +sh:Target dash:abstract true . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +unl:Universal_Word a owl:Class ; + rdfs:label "Universal Word" ; + rdfs:comment """For details abour UWs, see : +http://www.unlweb.net/wiki/Universal_Words + +Universal Words, or simply UW's, are the words of UNL, and correspond to nodes - to be interlinked by Universal Relations and specified by Universal Attributes - in a UNL graph.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:comparative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:gender a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:information_structure a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:nominal_attributes a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:person a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:place a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:polarity a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:position a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlProperty a rdf:Property . + +default3:occurence_ARS-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_ARS" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_TRANSEC-NC a unl:UW_Occurrence ; + rdfs:label "TRANSEC-NC" ; + unl:has_attribute ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_TRANSEC-NC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC . + +default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- a unl:UW_Occurrence ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:aoj default3:occurence_mission-icl-assignment-icl-thing-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_include" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> ; + unl:is_source_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_attribute ".@entry", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operational_manager" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> ; + unl:is_source_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:mod default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +default3:occurence_radio-channel-icl-communication-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_radio_channel" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_system-icl-instrumentality-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_system" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +cts:add-conjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-conjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:intersectionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:and ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:add-disjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-disjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:unionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:or ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:complement-composite-class a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Complement composite classes with feature relation +CONSTRUCT { + # Complement with feature relation + ?compositeClassUri sys:has_feature ?featureUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + # -- Item + ?net1 net:has_item ?itemObject. + ?itemObject net:has_class_uri ?compositeClassUri. + ?itemObject net:has_feature ?featureObject. + # -- Feature + ?featureObject a net:Object. + ?featureObject net:has_class_uri ?featureUri. +}""" ; + sh:order 3.22 . + +cts:generate-atom-class a sh:SPARQLRule ; + rdfs:label "add-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Atom Class in Target Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?atomConcept. + ?newClassUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_parent_class_uri ?parentUri. + ?atomObject1 net:has_class_uri ?newClassUri. + ?atomObject1 net:has_concept ?atomConcept. + # Filter: atom not present in a composite list + FILTER NOT EXISTS { + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_item ?atomObject1. + } +}""" ; + sh:order 3.1 . + +cts:generate-atom-instance a sh:SPARQLRule ; + rdfs:label "add-entity" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate atom instance in System Ontology +CONSTRUCT { + # Instantiation + ?newInstanceUri a ?classUri. + ?newInstanceUri rdfs:label ?atomInstance. + ?newInstanceUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_class_uri ?classUri. + ?atomObject1 net:has_instance ?atomInstance. + ?atomObject1 net:has_instance_uri ?newInstanceUri. + # Filter: entity not present in a class list + FILTER NOT EXISTS { ?net2 net:has_subClass ?atomConcept} +}""" ; + sh:order 3.1 . + +cts:generate-composite-class-from-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Composite Class in Ontology (from Composite List net) +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?compositeConcept. + ?newClassUri sys:from_structure ?req. + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. + ?instanceUri sys:from_structure ?req. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?net1 net:has_item ?compositeObject. + ?compositeObject net:has_class_uri ?newClassUri. + ?compositeObject net:has_concept ?compositeConcept. +}""" ; + sh:order 3.21 . + +unl:lexical_category a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:voice a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +default3:occurence_CDC-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_CDC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> ; + unl:is_source_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:or default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- a unl:UW_Occurrence ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:aoj default3:occurence_system-icl-instrumentality-icl-thing-- ; + unl:ben default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_attribute ".@entry", + ".@obligation", + ".@present" ; + unl:has_id "SRSA-IP_STB_PHON_00100_allow" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> ; + unl:is_source_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:occurence_capacity-icl-volume-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_capacity" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> ; + unl:is_source_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:mod default3:occurence_TRANSEC-NC . + +default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:UW_Occurrence ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_id "SRSA-IP_STB_PHON_00100_define" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> ; + unl:is_source_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:obj default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:scope_01 a unl:UNL_Scope ; + rdfs:label "01" ; + unl:is_scope_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing---, + default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 . + +rdf:rest a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:range rdf:List ; + rdfs:subPropertyOf rdf:rest . + +sh:AbstractResult dash:abstract true . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +<https://unl.tetras-libre.fr/rdf/schema#@pl> a owl:Class ; + rdfs:label "pl" ; + rdfs:subClassOf unl:quantification ; + skos:definition "plural" . + +unl:absolute_tense a owl:Class ; + rdfs:subClassOf unl:time . + +default3:occurence_mission-icl-assignment-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_mission" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +cts:compute-domain-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-domain-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Domain of Relation Property +CONSTRUCT { + # update Relation Property: add domain + ?newPropertyUri rdfs:domain ?domainClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1. + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + BIND (uri( ?domainClass) AS ?domainClassUri). +}""" ; + sh:order 3.32 . + +cts:compute-range-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-range-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Range of Relation Property +CONSTRUCT { + # update Relation Property: add range + ?newPropertyUri rdfs:range ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 3.32 . + +cts:generate-event-class a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Event Class in Target Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_concept ?sourceConcept. + # -- Target Object + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_concept ?targetConcept. + # Label: event + BIND (concat(?sourceConcept, '-', ?relationConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). +}""" ; + sh:order 3.31 . + +cts:generate-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Relation Property in Target Ontology +CONSTRUCT { + # update: Relation Property + ?newPropertyUri a owl:ObjectProperty. + ?newPropertyUri rdfs:subPropertyOf ?parentProperty. + ?newPropertyUri rdfs:label ?relationConcept. + ?newPropertyUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. +}""" ; + sh:order 3.31 . + +cts:link-instances-by-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +CONSTRUCT { + ?sourceInstanceUri ?newPropertyUri ?targetInstanceUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- Target Object + ?net1 net:has_target ?targetObject. + ?targetObject net:has_instance_uri ?targetInstanceUri. +}""" ; + sh:order 3.33 . + +unl:positive a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:syntactic_structures a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:tim a owl:Class, + owl:ObjectProperty ; + rdfs:label "tim" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "time"@en ; + skos:definition "The temporal placement of an entity or event."@en ; + skos:example """The whistle will sound at noon = tim(sound;noon) +John came yesterday = tim(came;yesterday)"""@en . + +default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- a unl:UW_Occurrence ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:agt default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_create" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> ; + unl:is_source_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:man default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:res default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:occurence_operator-icl-causal-agent-icl-person-- a unl:UW_Occurrence ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_attribute ".@indef", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operator" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> ; + unl:is_source_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- ; + unl:mod default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:scope_01 . + +unl:conventions a owl:Class ; + rdfs:subClassOf unl:syntactic_structures . + +unl:social_deixis a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:Script a dash:ShapeClass ; + rdfs:label "Script" ; + rdfs:comment "An executable unit implemented in one or more languages such as JavaScript." ; + rdfs:subClassOf rdfs:Resource . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +unl:other a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:plc a owl:Class, + owl:ObjectProperty ; + rdfs:label "plc" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "place"@en ; + skos:definition "The location or spatial orientation of an entity or event."@en ; + skos:example """John works here = plc(work;here) +John works in NY = plc(work;NY) +John works in the office = plc(work;office) +John is in the office = plc(John;office) +a night in Paris = plc(night;Paris)"""@en . + +unl:register a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:specification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:UNL_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Structure . + +dash:TestCase a dash:ShapeClass ; + rdfs:label "Test case" ; + dash:abstract true ; + rdfs:comment "A test case to verify that a (SHACL-based) feature works as expected." ; + rdfs:subClassOf rdfs:Resource . + +<https://unl.tetras-libre.fr/rdf/schema#@def> a owl:Class ; + rdfs:label "def" ; + rdfs:subClassOf unl:specification ; + skos:definition "definite" . + +unl:direction a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:SingleViewer a dash:ShapeClass ; + rdfs:label "Single viewer" ; + rdfs:comment "A viewer for a single value." ; + rdfs:subClassOf dash:Viewer . + +unl:Schemes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:emotions a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:ConstraintReificationShape a sh:NodeShape ; + rdfs:label "Constraint reification shape" ; + rdfs:comment "Can be used to attach sh:severity and sh:messages to individual constraints using reification." ; + sh:property dash:ConstraintReificationShape-message, + dash:ConstraintReificationShape-severity . + +() a rdf:List, + rdfs:Resource . + +cts:Transduction_Schemes a owl:Class, + sh:NodeShape ; + rdfs:label "Transduction Schemes" ; + rdfs:subClassOf owl:Thing . + +unl:UNL_Structure a owl:Class ; + rdfs:label "UNL Structure" ; + rdfs:comment "Sentences expressed in UNL can be organized in paragraphs and documents" . + +unl:quantification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:SingleEditor a dash:ShapeClass ; + rdfs:label "Single editor" ; + rdfs:comment "An editor for individual value nodes." ; + rdfs:subClassOf dash:Editor . + +default3:sentence_0 a unl:UNL_Sentence ; + rdfs:label """The system shall allow an operator (operational manager of the CDC or ARS) to create a mission with a radio channel by defining the following parameters: +- radio channel wording, +- role associated with the radio channel, +- work area, +- frequency, +- TRANSEC capacity, +- for each center lane: +o name of the radio centre, +o order number of the radio centre, +- mission wording"""@en, + """Le système doit permettre à un opérateur (gestionnaire opérationnel du CDC ou de l'ARS) de créer une mission comportant une voie radio en définissant les paramètres suivants: +• libellé de la voie radio, +• rôle associé à la voie radio, +• zone de travail, +• fréquence, +• capacité TRANSEC, +• pour chaque voie centre: +o libellé du centre radio, +o numéro d'ordre du centre radio, +• libellé de la mission"""@fr ; + skos:altLabel """[S:1] +aoj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,system(icl>instrumentality(icl>thing)).@def.@singular) +ben(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +mod(operator(icl>causal_agent(icl>person)).@indef.@male.@singular,:01.@parenthesis) +mod:01(operational_manager(equ>director,icl>administrator(icl>thing)).@entry.@male.@singular,CDC(icl>object(icl>place(icl>thing))).@def.@singular) +or:01(CDC(icl>object(icl>place(icl>thing))).@def.@singular,ARS(icl>object(icl>place(icl>thing))).@def.@singular) +obj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,create(agt>thing,icl>make(icl>do),obj>uw)) +agt(create(agt>thing,icl>make(icl>do),obj>uw),operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +res(create(agt>thing,icl>make(icl>do),obj>uw),mission(icl>assignment(icl>thing)).@indef.@singular) +aoj(include(aoj>thing,icl>contain(icl>be),obj>thing),mission(icl>assignment(icl>thing)).@indef.@singular) +obj(include(aoj>thing,icl>contain(icl>be),obj>thing),radio_channel(icl>communication(icl>thing)).@indef.@singular) +man(create(agt>thing,icl>make(icl>do),obj>uw),define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)) +obj(define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing),capacity(icl>volume(icl>thing)).@def.@singular) +mod(capacity(icl>volume(icl>thing)).@def.@singular,TRANSEC-NC.@singular) + +[/S]""" ; + unl:has_id "SRSA-IP_STB_PHON_00100" ; + unl:has_index <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_substructure_of <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_superstructure_of default3:occurence_ARS-icl-object-icl-place-icl-thing---, + default3:occurence_CDC-icl-object-icl-place-icl-thing---, + default3:occurence_TRANSEC-NC, + default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-, + default3:occurence_capacity-icl-volume-icl-thing--, + default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw-, + default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing-, + default3:occurence_mission-icl-assignment-icl-thing--, + default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:occurence_operator-icl-causal-agent-icl-person--, + default3:occurence_radio-channel-icl-communication-icl-thing--, + default3:occurence_system-icl-instrumentality-icl-thing--, + default3:scope_01 . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +unl:aspect a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Tropes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:location a owl:Class ; + rdfs:subClassOf unl:place . + +unl:Universal_Attribute a rdfs:Datatype, + owl:Class ; + rdfs:label "Universal Attribute" ; + rdfs:comment """More informations about Universal Attributes here : +http://www.unlweb.net/wiki/Universal_Attributes + +Classes in this hierarchy are informative. +Universal attributes must be expressed as strings (label of the attribute) with datatype :Universal_Attribute. + +Universal Attributes are arcs linking a node to itself. In opposition to Universal Relations, they correspond to one-place predicates, i.e., functions that take a single argument. In UNL, attributes have been normally used to represent information conveyed by natural language grammatical categories (such as tense, mood, aspect, number, etc). The set of attributes, which is claimed to be universal, is defined in the UNL Specs and is not open to frequent additions.""" ; + rdfs:subClassOf unl:UNL_Structure ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( ".@1" ".@2" ".@3" ".@ability" ".@about" ".@above" ".@according_to" ".@across" ".@active" ".@adjective" ".@adverb" ".@advice" ".@after" ".@again" ".@against" ".@agreement" ".@all" ".@alliteration" ".@almost" ".@along" ".@also" ".@although" ".@among" ".@anacoluthon" ".@anadiplosis" ".@anaphora" ".@anastrophe" ".@and" ".@anger" ".@angle_bracket" ".@antanaclasis" ".@anterior" ".@anthropomorphism" ".@anticlimax" ".@antimetabole" ".@antiphrasis" ".@antithesis" ".@antonomasia" ".@any" ".@apposition" ".@archaic" ".@around" ".@as" ".@as.@if" ".@as_far_as" ".@as_of" ".@as_per" ".@as_regards" ".@as_well_as" ".@assertion" ".@assonance" ".@assumption" ".@asyndeton" ".@at" ".@attention" ".@back" ".@barring" ".@because" ".@because_of" ".@before" ".@behind" ".@belief" ".@below" ".@beside" ".@besides" ".@between" ".@beyond" ".@both" ".@bottom" ".@brace" ".@brachylogia" ".@but" ".@by" ".@by_means_of" ".@catachresis" ".@causative" ".@certain" ".@chiasmus" ".@circa" ".@climax" ".@clockwise" ".@colloquial" ".@command" ".@comment" ".@concerning" ".@conclusion" ".@condition" ".@confirmation" ".@consent" ".@consequence" ".@consonance" ".@contact" ".@contentment" ".@continuative" ".@conviction" ".@decision" ".@deduction" ".@def" ".@desire" ".@despite" ".@determination" ".@dialect" ".@disagreement" ".@discontentment" ".@dissent" ".@distal" ".@double_negative" ".@double_parenthesis" ".@double_quote" ".@doubt" ".@down" ".@dual" ".@due_to" ".@during" ".@dysphemism" ".@each" ".@either" ".@ellipsis" ".@emphasis" ".@enough" ".@entire" ".@entry" ".@epanalepsis" ".@epanorthosis" ".@equal" ".@equivalent" ".@euphemism" ".@even" ".@even.@if" ".@except" ".@except.@if" ".@except_for" ".@exclamation" ".@excluding" ".@exhortation" ".@expectation" ".@experiential" ".@extra" ".@failing" ".@familiar" ".@far" ".@fear" ".@female" ".@focus" ".@following" ".@for" ".@from" ".@front" ".@future" ".@generic" ".@given" ".@habitual" ".@half" ".@hesitation" ".@hope" ".@hyperbole" ".@hypothesis" ".@if" ".@if.@only" ".@imperfective" ".@in" ".@in_accordance_with" ".@in_addition_to" ".@in_case" ".@in_case_of" ".@in_front_of" ".@in_place_of" ".@in_spite_of" ".@inceptive" ".@inchoative" ".@including" ".@indef" ".@inferior" ".@inside" ".@instead_of" ".@intention" ".@interrogation" ".@intimate" ".@invitation" ".@irony" ".@iterative" ".@jargon" ".@judgement" ".@least" ".@left" ".@less" ".@like" ".@literary" ".@majority" ".@male" ".@maybe" ".@medial" ".@metaphor" ".@metonymy" ".@minority" ".@minus" ".@more" ".@most" ".@multal" ".@narrative" ".@near" ".@near_to" ".@necessity" ".@neither" ".@neutral" ".@no" ".@not" ".@notwithstanding" ".@noun" ".@obligation" ".@of" ".@off" ".@on" ".@on_account_of" ".@on_behalf_of" ".@on_top_of" ".@only" ".@onomatopoeia" ".@opinion" ".@opposite" ".@or" ".@ordinal" ".@other" ".@outside" ".@over" ".@owing_to" ".@own" ".@oxymoron" ".@pace" ".@pain" ".@paradox" ".@parallelism" ".@parenthesis" ".@paronomasia" ".@part" ".@passive" ".@past" ".@paucal" ".@pejorative" ".@per" ".@perfect" ".@perfective" ".@periphrasis" ".@permission" ".@permissive" ".@persistent" ".@person" ".@pl" ".@pleonasm" ".@plus" ".@polite" ".@polyptoton" ".@polysyndeton" ".@possibility" ".@posterior" ".@prediction" ".@present" ".@presumption" ".@prior_to" ".@probability" ".@progressive" ".@prohibition" ".@promise" ".@prospective" ".@proximal" ".@pursuant_to" ".@qua" ".@quadrual" ".@recent" ".@reciprocal" ".@reflexive" ".@regarding" ".@regardless_of" ".@regret" ".@relative" ".@relief" ".@remote" ".@repetition" ".@request" ".@result" ".@reverential" ".@right" ".@round" ".@same" ".@save" ".@side" ".@since" ".@single_quote" ".@singular" ".@slang" ".@so" ".@speculation" ".@speech" ".@square_bracket" ".@subsequent_to" ".@such" ".@suggestion" ".@superior" ".@surprise" ".@symploce" ".@synecdoche" ".@synesthesia" ".@taboo" ".@terminative" ".@than" ".@thanks_to" ".@that_of" ".@thing" ".@threat" ".@through" ".@throughout" ".@times" ".@title" ".@to" ".@top" ".@topic" ".@towards" ".@trial" ".@tuple" ".@under" ".@unit" ".@unless" ".@unlike" ".@until" ".@up" ".@upon" ".@verb" ".@versus" ".@vocative" ".@warning" ".@weariness" ".@wh" ".@with" ".@with_regard_to" ".@with_respect_to" ".@within" ".@without" ".@worth" ".@yes" ".@zoomorphism" ) ] . + +dash:ShapeClass a dash:ShapeClass ; + rdfs:label "Shape class" ; + dash:hidden true ; + rdfs:comment "A class that is also a node shape. This class can be used as rdf:type instead of the combination of rdfs:Class and sh:NodeShape." ; + rdfs:subClassOf rdfs:Class, + sh:NodeShape . + +dash:DASHJSLibrary a sh:JSLibrary ; + rdfs:label "DASH JavaScript library" ; + sh:jsLibrary dash:RDFQueryJSLibrary ; + sh:jsLibraryURL "http://datashapes.org/js/dash.js"^^xsd:anyURI . + +sh:SPARQLRule rdfs:subClassOf owl:Thing . + +unl:modality a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +<http://datashapes.org/dash> a owl:Ontology ; + rdfs:label "DASH Data Shapes Vocabulary" ; + rdfs:comment "DASH is a SHACL library for frequently needed features and design patterns. Almost all features in this library are 100% standards compliant and will work on any engine that fully supports SHACL." ; + owl:imports <http://topbraid.org/tosh>, + sh: ; + sh:declare [ sh:namespace "http://datashapes.org/dash#"^^xsd:anyURI ; + sh:prefix "dash" ], + [ sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; + sh:prefix "dcterms" ], + [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI ; + sh:prefix "xsd" ], + [ sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI ; + sh:prefix "owl" ], + [ sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI ; + sh:prefix "skos" ] . + +unl:manner a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Universal_Relation a owl:Class, + owl:ObjectProperty ; + rdfs:label "Universal Relation" ; + rdfs:comment """For detailled specifications about UNL Universal Relations, see : +http://www.unlweb.net/wiki/Universal_Relations + +Universal Relations, formerly known as "links", are labelled arcs connecting a node to another node in a UNL graph. They correspond to two-place semantic predicates holding between two Universal Words. In UNL, universal relations have been normally used to represent semantic cases or thematic roles (such as agent, object, instrument, etc.) between UWs. The repertoire of universal relations is defined in the UNL Specs and it is not open to frequent additions. + +Universal Relations are organized in a hierarchy where lower nodes subsume upper nodes. The topmost level is the relation "rel", which simply indicates that there is a semantic relation between two elements. + +Universal Relations as Object Properties are used only in UNL Knowledge Bases. In UNL graphs, you must use the reified versions of those properties in order to specify the scopes (and not only the sources and targets).""" ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:UNL_Node ; + rdfs:subClassOf unl:UNL_Structure ; + rdfs:subPropertyOf skos:semanticRelation, + unl:unlObjectProperty ; + skos:altLabel "universal relation" ; + skos:definition "Simply indicates that there is a semantic relation (unspecified) between two elements. Use the sub-properties to specify a semantic relation." . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/DefaultTargetId-20230123/DefaultTargetId-shacl_preprocessing.ttl b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_preprocessing.ttl new file mode 100644 index 0000000000000000000000000000000000000000..41265ebb0ca8763062a79d034a8e0798c079bc51 --- /dev/null +++ b/output/DefaultTargetId-20230123/DefaultTargetId-shacl_preprocessing.ttl @@ -0,0 +1,7007 @@ +@base <http://DefaultTargetId/shacl_preprocessing> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix cts: <https://tenet.tetras-libre.fr/transduction-schemes#> . +@prefix dash: <http://datashapes.org/dash#> . +@prefix default3: <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix skos: <http://www.w3.org/2004/02/skos/core#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix tosh: <http://topbraid.org/tosh#> . +@prefix unl: <https://unl.tetras-libre.fr/rdf/schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dash:ExecutionPlatform a rdfs:Class ; + rdfs:label "Execution platform" ; + rdfs:comment "An platform (such as TopBraid) that may have features needed to execute, for example, SPARQL queries." ; + rdfs:subClassOf rdfs:Resource . + +dash:ExploreAction a rdfs:Class ; + rdfs:label "Explore action" ; + rdfs:comment "An action typically showing up in an Explore section of a selected resource. Cannot make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:FailureResult a rdfs:Class ; + rdfs:label "Failure result" ; + rdfs:comment "A result representing a validation failure such as an unsupported recursion." ; + rdfs:subClassOf sh:AbstractResult . + +dash:FailureTestCaseResult a rdfs:Class ; + rdfs:label "Failure test case result" ; + rdfs:comment "Represents a failure of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:GraphUpdate a rdfs:Class ; + rdfs:label "Graph update" ; + rdfs:comment "A suggestion consisting of added and/or deleted triples, represented as rdf:Statements via dash:addedTriple and dash:deletedTriple." ; + rdfs:subClassOf dash:Suggestion . + +dash:PropertyRole a rdfs:Class, + sh:NodeShape ; + rdfs:label "Property role" ; + rdfs:comment "The class of roles that a property (shape) may take for its focus nodes." ; + rdfs:subClassOf rdfs:Resource . + +dash:SPARQLConstructTemplate a rdfs:Class ; + rdfs:label "SPARQL CONSTRUCT template" ; + rdfs:comment "Encapsulates one or more SPARQL CONSTRUCT queries that can be parameterized. Parameters will become pre-bound variables in the queries." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLConstructExecutable . + +dash:SPARQLSelectTemplate a rdfs:Class ; + rdfs:label "SPARQL SELECT template" ; + rdfs:comment "Encapsulates a SPARQL SELECT query that can be parameterized. Parameters will become pre-bound variables in the query." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLSelectExecutable . + +dash:SPARQLUpdateSuggestionGenerator a rdfs:Class ; + rdfs:label "SPARQL UPDATE suggestion generator" ; + rdfs:comment """A SuggestionGenerator based on a SPARQL UPDATE query (sh:update), producing an instance of dash:GraphUpdate. The INSERTs become dash:addedTriple and the DELETEs become dash:deletedTriple. The WHERE clause operates on the data graph with the pre-bound variables $focusNode, $predicate and $value, as well as the other pre-bound variables for the parameters of the constraint. + +In many cases, there may be multiple possible suggestions to fix a problem. For example, with sh:maxLength there are many ways to slice a string. In those cases, the system will first iterate through the result variables from a SELECT query (sh:select) and apply these results as pre-bound variables into the UPDATE query.""" ; + rdfs:subClassOf dash:SuggestionGenerator, + sh:SPARQLSelectExecutable, + sh:SPARQLUpdateExecutable . + +dash:ScriptFunction a rdfs:Class, + sh:NodeShape ; + rdfs:label "Script function" ; + rdfs:comment """Script functions can be used from SPARQL queries and will be injected into the generated prefix object (in JavaScript, for ADS scripts). The dash:js will be inserted into a generated JavaScript function and therefore needs to use the return keyword to produce results. These JS snippets can access the parameter values based on the local name of the sh:Parameter's path. For example ex:value can be accessed using value. + +SPARQL use note: Since these functions may be used from any data graph and any shapes graph, they must not rely on any API apart from what's available in the shapes graph that holds the rdf:type triple of the function itself. In other words, at execution time from SPARQL, the ADS shapes graph will be the home graph of the function's declaration.""" ; + rdfs:subClassOf dash:Script, + sh:Function . + +dash:ShapeScript a rdfs:Class ; + rdfs:label "Shape script" ; + rdfs:comment "A shape script contains extra code that gets injected into the API for the associated node shape. In particular you can use this to define additional functions that operate on the current focus node (the this variable in JavaScript)." ; + rdfs:subClassOf dash:Script . + +dash:SuccessResult a rdfs:Class ; + rdfs:label "Success result" ; + rdfs:comment "A result representing a successfully validated constraint." ; + rdfs:subClassOf sh:AbstractResult . + +dash:SuccessTestCaseResult a rdfs:Class ; + rdfs:label "Success test case result" ; + rdfs:comment "Represents a successful run of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:Suggestion a rdfs:Class ; + rdfs:label "Suggestion" ; + dash:abstract true ; + rdfs:comment "Base class of suggestions that modify a graph to \"fix\" the source of a validation result." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionGenerator a rdfs:Class ; + rdfs:label "Suggestion generator" ; + dash:abstract true ; + rdfs:comment "Base class of objects that can generate suggestions (added or deleted triples) for a validation result of a given constraint component." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionResult a rdfs:Class ; + rdfs:label "Suggestion result" ; + rdfs:comment "Class of results that have been produced as suggestions, not through SHACL validation. How the actual results are produced is up to implementers. Each instance of this class should have values for sh:focusNode, sh:resultMessage, sh:resultSeverity (suggested default: sh:Info), and dash:suggestion to point at one or more suggestions." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestCaseResult a rdfs:Class ; + rdfs:label "Test case result" ; + dash:abstract true ; + rdfs:comment "Base class for results produced by running test cases." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestEnvironment a rdfs:Class ; + rdfs:label "Test environment" ; + dash:abstract true ; + rdfs:comment "Abstract base class for test environments, holding information on how to set up a test case." ; + rdfs:subClassOf rdfs:Resource . + +rdf:Alt a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Alt, + rdfs:Container . + +rdf:Bag a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Bag, + rdfs:Container . + +rdf:List a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:List, + rdfs:Resource . + +rdf:Property a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf rdf:Property, + rdfs:Resource . + +rdf:Seq a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Seq, + rdfs:Container . + +rdf:Statement a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Statement, + rdfs:Resource . + +rdf:XMLLiteral a rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Class a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Resource . + +rdfs:Container a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Container . + +rdfs:ContainerMembershipProperty a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Property, + rdfs:ContainerMembershipProperty, + rdfs:Resource . + +rdfs:Datatype a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Literal a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Literal, + rdfs:Resource . + +rdfs:Resource a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:subClassOf rdfs:Class . + +owl:Ontology a rdfs:Class, + rdfs:Resource . + +unl:UNL_Document a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Documents, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UNL_Scope a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Scopes, see : +http://www.unlweb.net/wiki/Scope + +The UNL representation is a hyper-graph, which means that it may consist of several interlinked or subordinate sub-graphs. These sub-graphs are represented as hyper-nodes and correspond roughly to the concept of dependent (subordinate) clauses, i.e., groups of words that consist of a subject (explicit or implied) and a predicate and which are embedded in a larger structure (the independent clause). They are used to define the boundaries between complex semantic entities being represented.""" ; + rdfs:subClassOf unl:UNL_Graph_Node . + +unl:UNL_Sentence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For mor information about UNL Sentences, see : +http://www.unlweb.net/wiki/UNL_sentence + +UNL sentences, or UNL expressions, are sentences of UNL. They are hypergraphs made out of nodes (Universal Words) interlinked by binary semantic Universal Relations and modified by Universal Attributes. UNL sentences have been the basic unit of representation inside the UNL framework.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UW_Lexeme a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf skos:Concept, + unl:UNLKB_Node, + unl:Universal_Word . + +unl:UW_Occurrence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf unl:UNL_Graph_Node, + unl:Universal_Word . + +unl:agt a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "agt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "agent"@en ; + skos:definition "A participant in an action or process that provokes a change of state or location."@en ; + skos:example """John killed Mary = agt(killed;John) +Mary was killed by John = agt(killed;John) +arrival of John = agt(arrival;John)"""@en . + +unl:aoj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "aoj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "object of an attribute"@en ; + skos:definition "The subject of an stative verb. Also used to express the predicative relation between the predicate and the subject."@en ; + skos:example """John has two daughters = aoj(have;John) +the book belongs to Mary = aoj(belong;book) +the book contains many pictures = aoj(contain;book) +John is sad = aoj(sad;John) +John looks sad = aoj(sad;John)"""@en . + +unl:ben a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "ben" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "beneficiary"@en ; + skos:definition "A participant who is advantaged or disadvantaged by an event."@en ; + skos:example """John works for Peter = ben(works;Peter) +John gave the book to Mary for Peter = ben(gave;Peter)"""@en . + +unl:man a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "man" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "manner"@en ; + skos:definition "Used to indicate how the action, experience or process of an event is carried out."@en ; + skos:example """John bought the car quickly = man(bought;quickly) +John bought the car in equal payments = man(bought;in equal payments) +John paid in cash = man(paid;in cash) +John wrote the letter in German = man(wrote;in German) +John wrote the letter in a bad manner = man(wrote;in a bad manner)"""@en . + +unl:mod a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "mod" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "modifier"@en ; + skos:definition "A general modification of an entity."@en ; + skos:example """a beautiful book = mod(book;beautiful) +an old book = mod(book;old) +a book with 10 pages = mod(book;with 10 pages) +a book in hard cover = mod(book;in hard cover) +a poem in iambic pentameter = mod(poem;in iambic pentamenter) +a man in an overcoat = mod(man;in an overcoat)"""@en . + +unl:obj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "obj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "patient"@en ; + skos:definition "A participant in an action or process undergoing a change of state or location."@en ; + skos:example """John killed Mary = obj(killed;Mary) +Mary died = obj(died;Mary) +The snow melts = obj(melts;snow)"""@en . + +unl:or a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "or" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "disjunction"@en ; + skos:definition "Used to indicate a disjunction between two entities."@en ; + skos:example """John or Mary = or(John;Mary) +either John or Mary = or(John;Mary)"""@en . + +unl:res a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "res" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "result or factitive"@en ; + skos:definition "A referent that results from an entity or event."@en ; + skos:example """The cook bake a cake = res(bake;cake) +They built a very nice building = res(built;a very nice building)"""@en . + +<exec_instance> a <https://unsel.tetras-libre.fr/tenet/transduction-schemes#shacl_preprocessing> . + +dash:ActionTestCase a dash:ShapeClass ; + rdfs:label "Action test case" ; + rdfs:comment """A test case that evaluates a dash:Action using provided input parameters. Requires exactly one value for dash:action and will operate on the test case's graph (with imports) as both data and shapes graph. + +Currently only supports read-only actions, allowing the comparison of actual results with the expected results.""" ; + rdfs:subClassOf dash:TestCase . + +dash:AllObjects a dash:AllObjectsTarget ; + rdfs:label "All objects" ; + rdfs:comment "A reusable instance of dash:AllObjectsTarget." . + +dash:AllSubjects a dash:AllSubjectsTarget ; + rdfs:label "All subjects" ; + rdfs:comment "A reusable instance of dash:AllSubjectsTarget." . + +dash:AutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Auto-complete editor" ; + rdfs:comment "An auto-complete field to enter the label of instances of a class. This is the fallback editor for any URI resource if no other editors are more suitable." . + +dash:BlankNodeViewer a dash:SingleViewer ; + rdfs:label "Blank node viewer" ; + rdfs:comment "A Viewer for blank nodes, rendering as the label of the blank node." . + +dash:BooleanSelectEditor a dash:SingleEditor ; + rdfs:label "Boolean select editor" ; + rdfs:comment """An editor for boolean literals, rendering as a select box with values true and false. + +Also displays the current value (such as "1"^^xsd:boolean), but only allows to switch to true or false.""" . + +dash:ClosedByTypesConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Closed by types constraint component" ; + rdfs:comment "A constraint component that can be used to declare that focus nodes are \"closed\" based on their rdf:types, meaning that focus nodes may only have values for the properties that are explicitly enumerated via sh:property/sh:path in property constraints at their rdf:types and the superclasses of those. This assumes that the type classes are also shapes." ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosedByTypesNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Property is not among those permitted for any of the types" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Property {?path} is not among those permitted for any of the types" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this (?predicate AS ?path) ?value +WHERE { + FILTER ($closedByTypes) . + $this ?predicate ?value . + FILTER (?predicate != rdf:type) . + FILTER NOT EXISTS { + $this rdf:type ?type . + ?type rdfs:subClassOf* ?class . + GRAPH $shapesGraph { + ?class sh:property/sh:path ?predicate . + } + } +}""" ] ; + sh:parameter dash:ClosedByTypesConstraintComponent-closedByTypes . + +dash:CoExistsWithConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Co-exists-with constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that if the property path has any value then the given property must also have a value, and vice versa." ; + sh:message "Values must co-exist with values of {$coExistsWith}" ; + sh:parameter dash:CoExistsWithConstraintComponent-coExistsWith ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateCoExistsWith" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + { + FILTER (EXISTS { $this $PATH ?any } && NOT EXISTS { $this $coExistsWith ?any }) + } + UNION + { + FILTER (NOT EXISTS { $this $PATH ?any } && EXISTS { $this $coExistsWith ?any }) + } +}""" ] . + +dash:DateOrDateTime a rdf:List ; + rdfs:label "Date or date time" ; + rdf:first [ sh:datatype xsd:date ] ; + rdf:rest ( [ sh:datatype xsd:dateTime ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:date or xsd:dateTime." . + +dash:DatePickerEditor a dash:SingleEditor ; + rdfs:label "Date picker editor" ; + rdfs:comment "An editor for xsd:date literals, offering a calendar-like date picker." . + +dash:DateTimePickerEditor a dash:SingleEditor ; + rdfs:label "Date time picker editor" ; + rdfs:comment "An editor for xsd:dateTime literals, offering a calendar-like date picker and a time selector." . + +dash:DepictionRole a dash:PropertyRole ; + rdfs:label "Depiction" ; + rdfs:comment "Depiction properties provide images representing the focus nodes. Typical examples may be a photo of an animal or the map of a country." . + +dash:DescriptionRole a dash:PropertyRole ; + rdfs:label "Description" ; + rdfs:comment "Description properties should produce text literals that may be used as an introduction/summary of what a focus node does." . + +dash:DetailsEditor a dash:SingleEditor ; + rdfs:label "Details editor" ; + rdfs:comment "An editor for non-literal values, typically displaying a nested form where the values of the linked resource can be edited directly on the \"parent\" form. Implementations that do not support this (yet) could fall back to an auto-complete widget." . + +dash:DetailsViewer a dash:SingleViewer ; + rdfs:label "Details viewer" ; + rdfs:comment "A Viewer for resources that shows the details of the value using its default view shape as a nested form-like display." . + +dash:EnumSelectEditor a dash:SingleEditor ; + rdfs:label "Enum select editor" ; + rdfs:comment "A drop-down editor for enumerated values (typically based on sh:in lists)." . + +dash:FunctionTestCase a dash:ShapeClass ; + rdfs:label "Function test case" ; + rdfs:comment "A test case that verifies that a given SPARQL expression produces a given, expected result." ; + rdfs:subClassOf dash:TestCase . + +dash:GraphStoreTestCase a dash:ShapeClass ; + rdfs:label "Graph store test case" ; + rdfs:comment "A test case that can be used to verify that an RDF file could be loaded (from a file) and that the resulting RDF graph is equivalent to a given TTL file." ; + rdfs:subClassOf dash:TestCase . + +dash:HTMLOrStringOrLangString a rdf:List ; + rdfs:label "HTML or string or langString" ; + rdf:first [ sh:datatype rdf:HTML ] ; + rdf:rest ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either rdf:HTML, xsd:string or rdf:langString (in that order of preference)." . + +dash:HTMLViewer a dash:SingleViewer ; + rdfs:label "HTML viewer" ; + rdfs:comment "A Viewer for HTML encoded text from rdf:HTML literals, rendering as parsed HTML DOM elements. Also displays the language if the HTML has a lang attribute on its root DOM element." . + +dash:HasValueInConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value in constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be a member of a given list of nodes." ; + sh:message "At least one of the values must be in {$hasValueIn}" ; + sh:parameter dash:HasValueInConstraintComponent-hasValueIn ; + sh:propertyValidator [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + GRAPH $shapesGraph { + $hasValueIn rdf:rest*/rdf:first ?value . + } + } +}""" ] . + +dash:HasValueTarget a sh:SPARQLTargetType ; + rdfs:label "Has Value target" ; + rdfs:comment "A target type for all subjects where a given predicate has a certain object value." ; + rdfs:subClassOf sh:Target ; + sh:labelTemplate "All subjects where {$predicate} has value {$object}" ; + sh:parameter [ a sh:Parameter ; + sh:description "The value that is expected to be present." ; + sh:name "object" ; + sh:path dash:object ], + [ a sh:Parameter ; + sh:description "The predicate property." ; + sh:name "predicate" ; + sh:nodeKind sh:IRI ; + sh:path dash:predicate ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this $predicate $object . +}""" . + +dash:HasValueWithClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value with class constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be an instance of a given class." ; + sh:message "At least one of the values must be an instance of class {$hasValueWithClass}" ; + sh:parameter dash:HasValueWithClassConstraintComponent-hasValueWithClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueWithClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + ?value a ?type . + ?type rdfs:subClassOf* $hasValueWithClass . + } +}""" ] . + +dash:HyperlinkViewer a dash:SingleViewer ; + rdfs:label "Hyperlink viewer" ; + rdfs:comment """A Viewer for literals, rendering as a hyperlink to a URL. + +For literals it assumes the lexical form is the URL. + +This is often used as default viewer for xsd:anyURI literals. Unsupported for blank nodes.""" . + +dash:IDRole a dash:PropertyRole ; + rdfs:label "ID" ; + rdfs:comment "ID properties are short strings or other literals that identify the focus node among siblings. Examples may include social security numbers." . + +dash:IconRole a dash:PropertyRole ; + rdfs:label "Icon" ; + rdfs:comment """Icon properties produce images that are typically small and almost square-shaped, and that may be displayed in the upper left corner of a focus node's display. Values should be xsd:string or xsd:anyURI literals or IRI nodes pointing at URLs. Those URLs should ideally be vector graphics such as .svg files. + +Instances of the same class often have the same icon, and this icon may be computed using a sh:values rule or as sh:defaultValue.\r +\r +If the value is a relative URL then those should be resolved against the server that delivered the surrounding page.""" . + +dash:ImageViewer a dash:SingleViewer ; + rdfs:label "Image viewer" ; + rdfs:comment "A Viewer for URI values that are recognized as images by a browser, rendering as an image." . + +dash:IndexedConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Indexed constraint component" ; + rdfs:comment "A constraint component that can be used to mark property shapes to be indexed, meaning that each of its value nodes must carry a dash:index from 0 to N." ; + sh:parameter dash:IndexedConstraintComponent-indexed . + +dash:InferencingTestCase a dash:ShapeClass ; + rdfs:label "Inferencing test case" ; + rdfs:comment "A test case to verify whether an inferencing engine is producing identical results to those stored as expected results." ; + rdfs:subClassOf dash:TestCase . + +dash:InstancesSelectEditor a dash:SingleEditor ; + rdfs:label "Instances select editor" ; + rdfs:comment "A drop-down editor for all instances of the target class (based on sh:class of the property)." . + +dash:JSTestCase a dash:ShapeClass ; + rdfs:label "SHACL-JS test case" ; + rdfs:comment "A test case that calls a given SHACL-JS JavaScript function like a sh:JSFunction and compares its result with the dash:expectedResult." ; + rdfs:subClassOf dash:TestCase, + sh:JSFunction . + +dash:KeyInfoRole a dash:PropertyRole ; + rdfs:label "Key info" ; + rdfs:comment "The Key info role may be assigned to properties that are likely of special interest to a reader, so that they should appear whenever a summary of a focus node is shown." . + +dash:LabelRole a dash:PropertyRole ; + rdfs:label "Label" ; + rdfs:comment "Properties with this role produce strings that may serve as display label for the focus nodes. Labels should be either plain string literals or strings with a language tag. The values should also be single-line." . + +dash:LabelViewer a dash:SingleViewer ; + rdfs:label "Label viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI based on the display label of the resource. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:LangStringViewer a dash:SingleViewer ; + rdfs:label "LangString viewer" ; + rdfs:comment "A Viewer for literals with a language tag, rendering as the text plus a language indicator." . + +dash:LiteralViewer a dash:SingleViewer ; + rdfs:label "Literal viewer" ; + rdfs:comment "A simple viewer for literals, rendering the lexical form of the value." . + +dash:ModifyAction a dash:ShapeClass ; + rdfs:label "Modify action" ; + rdfs:comment "An action typically showing up in a Modify section of a selected resource. May make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:MultiEditor a dash:ShapeClass ; + rdfs:label "Multi editor" ; + rdfs:comment "An editor for multiple/all value nodes at once." ; + rdfs:subClassOf dash:Editor . + +dash:NodeExpressionViewer a dash:SingleViewer ; + rdfs:label "Node expression viewer" ; + rdfs:comment "A viewer for SHACL Node Expressions."^^rdf:HTML . + +dash:NonRecursiveConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Non-recursive constraint component" ; + rdfs:comment "Used to state that a property or path must not point back to itself." ; + sh:message "Points back at itself (recursively)" ; + sh:parameter dash:NonRecursiveConstraintComponent-nonRecursive ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateNonRecursiveProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ($this AS ?value) +WHERE { + { + FILTER (?nonRecursive) + } + $this $PATH $this . +}""" ] . + +dash:None a sh:NodeShape ; + rdfs:label "None" ; + rdfs:comment "A Shape that is no node can conform to." ; + sh:in () . + +dash:ParameterConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Parameter constraint component"@en ; + rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given Parameter."@en ; + sh:parameter dash:ParameterConstraintComponent-parameter . + +dash:PrimaryKeyConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Primary key constraint component" ; + dash:localConstraint true ; + rdfs:comment "Enforces a constraint that the given property (sh:path) serves as primary key for all resources in the target of the shape. If a property has been declared to be the primary key then each resource must have exactly one value for that property. Furthermore, the URIs of those resources must start with a given string (dash:uriStart), followed by the URL-encoded primary key value. For example if dash:uriStart is \"http://example.org/country-\" and the primary key for an instance is \"de\" then the URI must be \"http://example.org/country-de\". Finally, as a result of the URI policy, there can not be any other resource with the same value under the same primary key policy." ; + sh:labelTemplate "The property {?predicate} is the primary key and URIs start with {?uriStart}" ; + sh:message "Violation of primary key constraint" ; + sh:parameter dash:PrimaryKeyConstraintComponent-uriStart ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validatePrimaryKeyProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this +WHERE { + FILTER ( + # Must have a value for the primary key + NOT EXISTS { ?this $PATH ?any } + || + # Must have no more than one value for the primary key + EXISTS { + ?this $PATH ?value1 . + ?this $PATH ?value2 . + FILTER (?value1 != ?value2) . + } + || + # The value of the primary key must align with the derived URI + EXISTS { + { + ?this $PATH ?value . + FILTER NOT EXISTS { ?this $PATH ?value2 . FILTER (?value != ?value2) } + } + BIND (CONCAT($uriStart, ENCODE_FOR_URI(str(?value))) AS ?uri) . + FILTER (str(?this) != ?uri) . + } + ) +}""" ] . + +dash:QueryTestCase a dash:ShapeClass ; + rdfs:label "Query test case" ; + rdfs:comment "A test case running a given SPARQL SELECT query and comparing its results with those stored as JSON Result Set in the expected result property." ; + rdfs:subClassOf dash:TestCase, + sh:SPARQLSelectExecutable . + +dash:ReifiableByConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Reifiable-by constraint component" ; + sh:labelTemplate "Reifiable by {$reifiableBy}" ; + sh:parameter dash:ReifiableByConstraintComponent-reifiableBy . + +dash:RichTextEditor a dash:SingleEditor ; + rdfs:label "Rich text editor" ; + rdfs:comment "A rich text editor to enter the lexical value of a literal and a drop down to select language. The selected language is stored in the HTML lang attribute of the root node in the HTML DOM tree." . + +dash:RootClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Root class constraint component" ; + rdfs:comment "A constraint component defining the parameter dash:rootClass, which restricts the values to be either the root class itself or one of its subclasses. This is typically used in conjunction with properties that have rdfs:Class as their type." ; + sh:labelTemplate "Root class {$rootClass}" ; + sh:message "Value must be subclass of {$rootClass}" ; + sh:parameter dash:RootClassConstraintComponent-rootClass ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateRootClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasRootClass . + +dash:ScriptConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Script constraint component" ; + sh:parameter dash:ScriptConstraintComponent-scriptConstraint . + +dash:ScriptSuggestionGenerator a dash:ShapeClass ; + rdfs:label "Script suggestion generator" ; + rdfs:comment """A Suggestion Generator that is backed by an Active Data Shapes script. The script needs to return a JSON object or an array of JSON objects if it shall generate multiple suggestions. It may also return null to indicate that nothing was suggested. Note that the whole script is evaluated as a (JavaScript) expression, and those will use the last value as result. So simply putting an object at the end of your script should do. Alternatively, define the bulk of the operation as a function and simply call that function in the script. + +Each response object can have the following fields: + +{ + message: "The human readable message", // Defaults to the rdfs:label(s) of the suggestion generator + add: [ // An array of triples to add, each triple as an array with three nodes + [ subject, predicate, object ], + [ ... ] + ], + delete: [ + ... like add, for the triples to delete + ] +} + +Suggestions with neither added nor deleted triples will be discarded. + +At execution time, the script operates on the data graph as the active graph, with the following pre-bound variables: +- focusNode: the NamedNode that is the sh:focusNode of the validation result +- predicate: the NamedNode representing the predicate of the validation result, assuming sh:resultPath is a URI +- value: the value node from the validation result's sh:value, cast into the most suitable JS object +- the other pre-bound variables for the parameters of the constraint, e.g. in a sh:maxCount constraint it would be maxCount + +The script will be executed in read-only mode, i.e. it cannot modify the graph. + +Example with dash:js: + +({ + message: `Copy labels into ${graph.localName(predicate)}`, + add: focusNode.values(rdfs.label).map(label => + [ focusNode, predicate, label ] + ) +})""" ; + rdfs:subClassOf dash:Script, + dash:SuggestionGenerator . + +dash:ScriptTestCase a dash:ShapeClass ; + rdfs:label "Script test case" ; + rdfs:comment """A test case that evaluates a script. Requires exactly one value for dash:js and will operate on the test case's graph (with imports) as both data and shapes graph. + +Supports read-only scripts only at this stage.""" ; + rdfs:subClassOf dash:Script, + dash:TestCase . + +dash:ScriptValidator a dash:ShapeClass ; + rdfs:label "Script validator" ; + rdfs:comment """A SHACL validator based on an Active Data Shapes script. + +See the comment at dash:ScriptConstraint for the basic evaluation approach. Note that in addition to focusNode and value/values, the script can access pre-bound variables for each declared argument of the constraint component.""" ; + rdfs:subClassOf dash:Script, + sh:Validator . + +dash:SingleLineConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Single line constraint component" ; + rdfs:comment """A constraint component that can be used to declare that all values that are literals must have a lexical form that contains no line breaks ('\\n' or '\\r'). + +User interfaces may use the dash:singleLine flag to prefer a text field over a (multi-line) text area.""" ; + sh:message "Must not contain line breaks." ; + sh:parameter dash:SingleLineConstraintComponent-singleLine ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSingleLine" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER (!$singleLine || !isLiteral($value) || (!contains(str($value), '\\n') && !contains(str($value), '\\r'))) +}""" ; + sh:prefixes <http://datashapes.org/dash> ] . + +dash:StemConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Stem constraint component"@en ; + dash:staticConstraint true ; + rdfs:comment "A constraint component that can be used to verify that every value node is an IRI and the IRI starts with a given string value."@en ; + sh:labelTemplate "Value needs to have stem {$stem}" ; + sh:message "Value does not have stem {$stem}" ; + sh:parameter dash:StemConstraintComponent-stem ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateStem" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasStem . + +dash:StringOrLangStringOrHTML a rdf:List ; + rdfs:label "string or langString or HTML" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] [ sh:datatype rdf:HTML ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string, rdf:langString or rdf:HTML (in that order of preference)." . + +dash:SubClassEditor a dash:SingleEditor ; + rdfs:label "Sub-Class editor" ; + rdfs:comment "An editor for properties that declare a dash:rootClass. The editor allows selecting either the class itself or one of its subclasses." . + +dash:SubSetOfConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Sub set of constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to state that the set of value nodes must be a subset of the value of a given property." ; + sh:message "Must be one of the values of {$subSetOf}" ; + sh:parameter dash:SubSetOfConstraintComponent-subSetOf ; + sh:propertyValidator [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + $this $subSetOf $value . +}""" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSubSetOf" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +dash:SymmetricConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Symmetric constraint component" ; + rdfs:comment "A contraint component for property shapes to validate that a property is symmetric. For symmetric properties, if A relates to B then B must relate to A." ; + sh:message "Symmetric value expected" ; + sh:parameter dash:SymmetricConstraintComponent-symmetric ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateSymmetric" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this ?value { + FILTER ($symmetric) . + $this $PATH ?value . + FILTER NOT EXISTS { + ?value $PATH $this . + } +}""" ] . + +dash:TextAreaEditor a dash:SingleEditor ; + rdfs:label "Text area editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal." . + +dash:TextAreaWithLangEditor a dash:SingleEditor ; + rdfs:label "Text area with lang editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal and a drop down to select a language." . + +dash:TextFieldEditor a dash:SingleEditor ; + rdfs:label "Text field editor" ; + rdfs:comment """A simple input field to enter the value of a literal, without the ability to change language or datatype. + +This is the fallback editor for any literal if no other editors are more suitable.""" . + +dash:TextFieldWithLangEditor a dash:SingleEditor ; + rdfs:label "Text field with lang editor" ; + rdfs:comment "A single-line input field to enter the value of a literal and a drop down to select language, which is mandatory unless xsd:string is among the permissible datatypes." . + +dash:URIEditor a dash:SingleEditor ; + rdfs:label "URI editor" ; + rdfs:comment "An input field to enter the URI of a resource, e.g. rdfs:seeAlso links or images." . + +dash:URIViewer a dash:SingleViewer ; + rdfs:label "URI viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:UniqueValueForClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Unique value for class constraint component" ; + dash:propertySuggestionGenerator tosh:DeleteTripleSuggestionGenerator ; + rdfs:comment "A constraint component that can be used to state that the values of a property must be unique for all instances of a given class (and its subclasses)." ; + sh:labelTemplate "Values must be unique among all instances of {?uniqueValueForClass}" ; + sh:parameter dash:UniqueValueForClassConstraintComponent-uniqueValueForClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueValueForClass" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value {?value} must be unique but is also used by {?other}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Value {?value} must be unique but is also used by {?other}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ?value ?other +WHERE { + { + $this $PATH ?value . + ?other $PATH ?value . + FILTER (?other != $this) . + } + ?other a ?type . + ?type rdfs:subClassOf* $uniqueValueForClass . +}""" ] . + +dash:UntrustedHTMLViewer a dash:SingleViewer ; + rdfs:label "Untrusted HTML viewer" ; + rdfs:comment "A Viewer for HTML content from untrusted sources. This viewer will sanitize the HTML before rendering. Any a, button, checkbox, form, hidden, input, img, script, select, style and textarea tags and class and style attributes will be removed." . + +dash:ValueTableViewer a dash:MultiViewer ; + rdfs:label "Value table viewer" ; + rdfs:comment "A viewer that renders all values of a given property as a table, with one value per row, and the columns defined by the shape that is the sh:node or sh:class of the property." . + +dash:abstract a rdf:Property ; + rdfs:label "abstract" ; + rdfs:comment "Indicates that a class is \"abstract\" and cannot be used in asserted rdf:type triples. Only non-abstract subclasses of abstract classes should be instantiated directly." ; + rdfs:domain rdfs:Class ; + rdfs:range xsd:boolean . + +dash:actionGroup a rdf:Property ; + rdfs:label "action group" ; + rdfs:comment "Links an Action with the ActionGroup that it should be arranged in." ; + rdfs:domain dash:Action ; + rdfs:range dash:ActionGroup . + +dash:actionIconClass a rdf:Property ; + rdfs:label "action icon class" ; + rdfs:comment "The (CSS) class of an Action for display purposes alongside the label." ; + rdfs:domain dash:Action ; + rdfs:range xsd:string . + +dash:addedTriple a rdf:Property ; + rdfs:label "added triple" ; + rdfs:comment "May link a dash:GraphUpdate with one or more triples (represented as instances of rdf:Statement) that should be added to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:all a rdfs:Resource ; + rdfs:label "all" ; + rdfs:comment "Represents all users/roles, for example as a possible value of the default view for role property." . + +dash:applicableToClass a rdf:Property ; + rdfs:label "applicable to class" ; + rdfs:comment "Can be used to state that a shape is applicable to instances of a given class. This is a softer statement than \"target class\": a target means that all instances of the class must conform to the shape. Being applicable to simply means that the shape may apply to (some) instances of the class. This information can be used by algorithms or humans." ; + rdfs:domain sh:Shape ; + rdfs:range rdfs:Class . + +dash:cachable a rdf:Property ; + rdfs:label "cachable" ; + rdfs:comment "If set to true then the results of the SHACL function can be cached in between invocations with the same arguments. In other words, they are stateless and do not depend on triples in any graph, or the current time stamp etc." ; + rdfs:domain sh:Function ; + rdfs:range xsd:boolean . + +dash:composite a rdf:Property ; + rdfs:label "composite" ; + rdfs:comment "Can be used to indicate that a property/path represented by a property constraint represents a composite relationship. In a composite relationship, the life cycle of a \"child\" object (value of the property/path) depends on the \"parent\" object (focus node). If the parent gets deleted, then the child objects should be deleted, too. Tools may use dash:composite (if set to true) to implement cascading delete operations." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:defaultLang a rdf:Property ; + rdfs:label "default language" ; + rdfs:comment "Can be used to annotate a graph (usually the owl:Ontology) with the default language that tools should suggest for new literal values. For example, predominantly English graphs should have \"en\" as default language." ; + rdfs:domain owl:Ontology ; + rdfs:range xsd:string . + +dash:defaultViewForRole a rdf:Property ; + rdfs:label "default view for role" ; + rdfs:comment "Links a node shape with the roles for which it shall be used as default view. User interfaces can use these values to select how to present a given RDF resource. The values of this property are URIs representing a group of users or agents. There is a dedicated URI dash:all representing all users." ; + rdfs:domain sh:NodeShape . + +dash:deletedTriple a rdf:Property ; + rdfs:label "deleted triple" ; + rdfs:comment "May link a dash:GraphUpdate result with one or more triples (represented as instances of rdf:Statement) that should be deleted to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:dependencyPredicate a rdf:Property ; + rdfs:label "dependency predicate" ; + rdfs:comment "Can be used in dash:js node expressions to enumerate the predicates that the computation of the values may depend on. This can be used by clients to determine whether an edit requires re-computation of values on a form or elsewhere. For example, if the dash:js is something like \"focusNode.firstName + focusNode.lastName\" then the dependency predicates should be ex:firstName and ex:lastName." ; + rdfs:range rdf:Property . + +dash:detailsEndpoint a rdf:Property ; + rdfs:label "details endpoint" ; + rdfs:comment """Can be used to link a SHACL property shape with the URL of a SPARQL endpoint that may contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to values from an external graph when the user wants to retrieve more information about a value. + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information. One implementation strategy would be to periodically fetch the values specified by the sh:node or sh:class shape associated with the property, using the property shapes in that shape, and add the resulting triples into the main query graph. + +An example value is "https://query.wikidata.org/sparql".""" . + +dash:detailsGraph a rdf:Property ; + rdfs:label "details graph" ; + rdfs:comment """Can be used to link a SHACL property shape with a SHACL node expression that produces the URIs of one or more graphs that contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to another data graph when the user wants to retrieve more information about a value. + +The node expressions are evaluated with the focus node as input. (It is unclear whether there are also cases where the result may be different for each specific value, in which case the node expression would need a second input argument). + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information.""" . + +dash:editor a rdf:Property ; + rdfs:label "editor" ; + rdfs:comment "Can be used to link a property shape with an editor, to state a preferred editing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Editor . + +dash:excludedPrefix a rdf:Property ; + rdfs:label "excluded prefix" ; + rdfs:comment "Specifies a prefix that shall be excluded from the Script code generation." ; + rdfs:range xsd:string . + +dash:expectedResult a rdf:Property ; + rdfs:label "expected result" ; + rdfs:comment "The expected result(s) of a test case. The value range of this property is different for each kind of test cases." ; + rdfs:domain dash:TestCase . + +dash:expectedResultIsJSON a rdf:Property ; + rdfs:label "expected result is JSON" ; + rdfs:comment "A flag to indicate that the expected result represents a JSON string. If set to true, then tests would compare JSON structures (regardless of whitespaces) instead of actual syntax." ; + rdfs:range xsd:boolean . + +dash:expectedResultIsTTL a rdf:Property ; + rdfs:label "expected result is Turtle" ; + rdfs:comment "A flag to indicate that the expected result represents an RDF graph encoded as a Turtle file. If set to true, then tests would compare graphs instead of actual syntax." ; + rdfs:domain dash:TestCase ; + rdfs:range xsd:boolean . + +dash:fixed a rdf:Property ; + rdfs:label "fixed" ; + rdfs:comment "Can be used to mark that certain validation results have already been fixed." ; + rdfs:domain sh:ValidationResult ; + rdfs:range xsd:boolean . + +dash:height a rdf:Property ; + rdfs:label "height" ; + rdfs:comment "The height." ; + rdfs:range xsd:integer . + +dash:hidden a rdf:Property ; + rdfs:label "hidden" ; + rdfs:comment "Properties marked as hidden do not appear in user interfaces, yet remain part of the shape for other purposes such as validation and scripting or GraphQL schema generation." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:includedExecutionPlatform a rdf:Property ; + rdfs:label "included execution platform" ; + rdfs:comment "Can be used to state that one (subject) execution platform includes all features of another platform (object)." ; + rdfs:domain dash:ExecutionPlatform ; + rdfs:range dash:ExecutionPlatform . + +dash:index a rdf:Property ; + rdfs:label "index" ; + rdfs:range xsd:integer . + +dash:isDeactivated a sh:SPARQLFunction ; + rdfs:label "is deactivated" ; + rdfs:comment "Checks whether a given shape or constraint has been marked as \"deactivated\" using sh:deactivated." ; + sh:ask """ASK { + ?constraintOrShape sh:deactivated true . +}""" ; + sh:parameter [ a sh:Parameter ; + sh:description "The sh:Constraint or sh:Shape to test." ; + sh:name "constraint or shape" ; + sh:path dash:constraintOrShape ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindBlankNode a sh:SPARQLFunction ; + rdfs:label "is NodeKind BlankNode" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes BlankNodes." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindIRI a sh:SPARQLFunction ; + rdfs:label "is NodeKind IRI" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes IRIs." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindLiteral a sh:SPARQLFunction ; + rdfs:label "is NodeKind Literal" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes Literals." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isSubClassOf a sh:SPARQLFunction ; + rdfs:label "is subclass of" ; + rdfs:comment "Returns true if a given class (first argument) is a subclass of a given other class (second argument), or identical to that class. This is equivalent to an rdfs:subClassOf* check." ; + sh:ask """ASK { + $subclass rdfs:subClassOf* $superclass . +}""" ; + sh:parameter dash:isSubClassOf-subclass, + dash:isSubClassOf-superclass ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:js a rdf:Property ; + rdfs:label "JavaScript source code" ; + rdfs:comment "The JavaScript source code of a Script." ; + rdfs:domain dash:Script ; + rdfs:range xsd:string . + +dash:localConstraint a rdf:Property ; + rdfs:label "local constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the shape definitions and the direct property values of the focus node mentioned in the property constraints. Examples of this include sh:minCount and sh:hasValue. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server, assuming the client has downloaded a complete snapshot of the resource. + +Any component marked with dash:staticConstraint is also a dash:localConstraint.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:localValues a rdf:Property ; + rdfs:label "local values" ; + rdfs:comment "If set to true at a property shape then any sh:values rules of this property will be ignored when 'all inferences' are computed. This is useful for property values that shall only be computed for individual focus nodes (e.g. when a user visits a resource) but not for large inference runs." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:mimeTypes a rdf:Property ; + rdfs:label "mime types" ; + rdfs:comment """For file-typed properties, this can be used to specify the expected/allowed mime types of its values. This can be used, for example, to limit file input boxes or file selectors. If multiple values are allowed then they need to be separated by commas. + +Example values are listed at https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types""" ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:string . + +dash:onAllValues a rdf:Property ; + rdfs:label "on all values" ; + rdfs:comment "If set to true for a ScriptConstraint or ScriptValidator, then the associated script will receive all value nodes at once, as a value of the variable values. By default (or false), the script is called for each value node individually." ; + rdfs:range xsd:boolean . + +dash:propertySuggestionGenerator a rdf:Property ; + rdfs:label "property suggestion generator" ; + rdfs:comment "Links the constraint component with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by a property constraint." ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range dash:SuggestionGenerator . + +dash:readOnly a rdf:Property ; + rdfs:label "read only" ; + rdfs:comment "Used as a hint for user interfaces that values of the associated property should not be editable. The values of this may be the boolean literals true or false or, more generally, a SHACL node expression that must evaluate to true or false." ; + rdfs:domain sh:PropertyShape . + +dash:requiredExecutionPlatform a rdf:Property ; + rdfs:label "required execution platform" ; + rdfs:comment "Links a SPARQL executable with the platforms that it can be executed on. This can be used by a SHACL implementation to determine whether a constraint validator or rule shall be ignored based on the current platform. For example, if a SPARQL query uses a function or magic property that is only available in TopBraid then a non-TopBraid platform can ignore the constraint (or simply always return no validation results). If this property has no value then the assumption is that the execution will succeed. As soon as one value exists, the assumption is that the engine supports at least one of the given platforms." ; + rdfs:domain sh:SPARQLExecutable ; + rdfs:range dash:ExecutionPlatform . + +dash:resourceAction a rdf:Property ; + rdfs:label "resource action" ; + rdfs:comment "Links a class with the Resource Actions that can be applied to instances of that class." ; + rdfs:domain rdfs:Class ; + rdfs:range dash:ResourceAction . + +dash:shape a rdf:Property ; + rdfs:label "shape" ; + rdfs:comment "States that a subject resource has a given shape. This property can, for example, be used to capture results of SHACL validation on static data." ; + rdfs:range sh:Shape . + +dash:shapeScript a rdf:Property ; + rdfs:label "shape script" ; + rdfs:domain sh:NodeShape . + +dash:staticConstraint a rdf:Property ; + rdfs:label "static constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the parameters. Examples of this include sh:datatype or sh:nodeKind, where no further triples need to be queried to determine the result. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:suggestion a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a result with one or more suggestions on how to address or improve the underlying issue." ; + rdfs:domain sh:AbstractResult ; + rdfs:range dash:Suggestion . + +dash:suggestionConfidence a rdf:Property ; + rdfs:label "suggestion confidence" ; + rdfs:comment "An optional confidence between 0% and 100%. Suggestions with 100% confidence are strongly recommended. Can be used to sort recommended updates." ; + rdfs:domain dash:Suggestion ; + rdfs:range xsd:decimal . + +dash:suggestionGenerator a rdf:Property ; + rdfs:label "suggestion generator" ; + rdfs:comment "Links a sh:SPARQLConstraint or sh:JSConstraint with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by the constraint." ; + rdfs:range dash:SuggestionGenerator . + +dash:suggestionGroup a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a suggestion with the group identifier to which it belongs. By default this is a link to the dash:SuggestionGenerator, but in principle this could be any value." ; + rdfs:domain dash:Suggestion . + +dash:toString a sh:JSFunction, + sh:SPARQLFunction ; + rdfs:label "to string" ; + dash:cachable true ; + rdfs:comment "Returns a literal with datatype xsd:string that has the input value as its string. If the input value is an (URI) resource then its URI will be used." ; + sh:jsFunctionName "dash_toString" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "Convert {$arg} to xsd:string" ; + sh:parameter [ a sh:Parameter ; + sh:description "The input value." ; + sh:name "arg" ; + sh:nodeKind sh:IRIOrLiteral ; + sh:path dash:arg ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:string ; + sh:select """SELECT (xsd:string($arg) AS ?result) +WHERE { +}""" . + +dash:uriTemplate a sh:SPARQLFunction ; + rdfs:label "URI template" ; + dash:cachable true ; + rdfs:comment """Inserts a given value into a given URI template, producing a new xsd:anyURI literal. + +In the future this should support RFC 6570 but for now it is limited to simple {...} patterns.""" ; + sh:parameter [ a sh:Parameter ; + sh:datatype xsd:string ; + sh:description "The URI template, e.g. \"http://example.org/{symbol}\"." ; + sh:name "template" ; + sh:order 0 ; + sh:path dash:template ], + [ a sh:Parameter ; + sh:description "The literal value to insert into the template. Will use the URI-encoded string of the lexical form (for now)." ; + sh:name "value" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dash:value ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:anyURI ; + sh:select """SELECT ?result +WHERE { + BIND (xsd:anyURI(REPLACE(?template, "\\\\{[a-zA-Z]+\\\\}", $value)) AS ?result) +}""" . + +dash:validateShapes a rdf:Property ; + rdfs:label "validate shapes" ; + rdfs:comment "True to also validate the shapes itself (i.e. parameter declarations)." ; + rdfs:domain dash:GraphValidationTestCase ; + rdfs:range xsd:boolean . + +dash:valueCount a sh:SPARQLFunction ; + rdfs:label "value count" ; + rdfs:comment "Computes the number of objects for a given subject/predicate combination." ; + sh:parameter [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The predicate to get the number of objects of." ; + sh:name "predicate" ; + sh:order 1 ; + sh:path dash:predicate ], + [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The subject to get the number of objects of." ; + sh:name "subject" ; + sh:order 0 ; + sh:path dash:subject ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:integer ; + sh:select """ + SELECT (COUNT(?object) AS ?result) + WHERE { + $subject $predicate ?object . + } +""" . + +dash:viewer a rdf:Property ; + rdfs:label "viewer" ; + rdfs:comment "Can be used to link a property shape with a viewer, to state a preferred viewing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Viewer . + +dash:width a rdf:Property ; + rdfs:label "width" ; + rdfs:comment "The width." ; + rdfs:range xsd:integer . + +dash:x a rdf:Property ; + rdfs:label "x" ; + rdfs:comment "The x position." ; + rdfs:range xsd:integer . + +dash:y a rdf:Property ; + rdfs:label "y" ; + rdfs:comment "The y position." ; + rdfs:range xsd:integer . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100#ontology> a owl:Ontology ; + owl:imports default3:ontology, + <https://unl.tetras-libre.fr/rdf/schema> . + +rdf:type a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Class . + +rdfs:comment a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:label a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:range a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:subClassOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdfs:Class ; + rdfs:range rdfs:Class . + +rdfs:subPropertyOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdf:Property . + +sh:AndConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateAnd" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:ClassConstraintComponent sh:labelTemplate "Value needs to have class {$class}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasClass . + +sh:ClosedConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Closed shape: only the enumerated properties can be used" ; + sh:nodeValidator [ a sh:SPARQLSelectValidator ; + sh:message "Predicate {?path} is not allowed (closed shape)" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this (?predicate AS ?path) ?value + WHERE { + { + FILTER ($closed) . + } + $this ?predicate ?value . + FILTER (NOT EXISTS { + GRAPH $shapesGraph { + $currentShape sh:property/sh:path ?predicate . + } + } && (!bound($ignoredProperties) || NOT EXISTS { + GRAPH $shapesGraph { + $ignoredProperties rdf:rest*/rdf:first ?predicate . + } + })) + } +""" ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosed" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Predicate is not allowed (closed shape)" ] . + +sh:DatatypeConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Values must have datatype {$datatype}" ; + sh:message "Value does not have datatype {$datatype}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDatatype" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:DisjointConstraintComponent dash:localConstraint true ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDisjoint" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value node must not also be one of the values of {$disjoint}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ + ASK { + FILTER NOT EXISTS { + $this $disjoint $value . + } + } + """ ; + sh:message "Property must not share any values with {$disjoint}" ; + sh:prefixes <http://datashapes.org/dash> ] . + +sh:EqualsConstraintComponent dash:localConstraint true ; + sh:message "Must have same values as {$equals}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsNode" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + FILTER NOT EXISTS { $this $equals $this } + BIND ($this AS ?value) . + } + UNION + { + $this $equals ?value . + FILTER (?value != $this) . + } + } + """ ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + $this $PATH ?value . + MINUS { + $this $equals ?value . + } + } + UNION + { + $this $equals ?value . + MINUS { + $this $PATH ?value . + } + } + } + """ ] . + +sh:HasValueConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have value {$hasValue}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value must be {$hasValue}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER ($value = $hasValue) +}""" ; + sh:message "Value must be {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueProperty" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Missing expected value {$hasValue}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Missing expected value {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + FILTER NOT EXISTS { $this $PATH $hasValue } + } + """ ] . + +sh:InConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Value must be in {$in}" ; + sh:message "Value is not in {$in}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isIn . + +sh:JSExecutable dash:abstract true . + +sh:LanguageInConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Language must match any of {$languageIn}" ; + sh:message "Language does not match any of {$languageIn}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateLanguageIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isLanguageIn . + +sh:LessThanConstraintComponent dash:localConstraint true ; + sh:message "Value is not < value of {$lessThan}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThan ?otherValue . + BIND (?value < ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } + """ ] . + +sh:LessThanOrEqualsConstraintComponent dash:localConstraint true ; + sh:message "Value is not <= value of {$lessThanOrEquals}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanOrEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThanOrEquals ?otherValue . + BIND (?value <= ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } +""" ] . + +sh:MaxCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must not have more than {$maxCount} values" ; + sh:message "More than {$maxCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + $this $PATH ?value . + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) > $maxCount) + """ ] . + +sh:MaxExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be < {$maxExclusive}" ; + sh:message "Value is not < {$maxExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxExclusive . + +sh:MaxInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be <= {$maxInclusive}" ; + sh:message "Value is not <= {$maxInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxInclusive . + +sh:MaxLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must not have more than {$maxLength} characters" ; + sh:message "Value has more than {$maxLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxLength . + +sh:MinCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have at least {$minCount} values" ; + sh:message "Fewer than {$minCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + OPTIONAL { + $this $PATH ?value . + } + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) < $minCount) + """ ] . + +sh:MinExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be > {$minExclusive}" ; + sh:message "Value is not > {$minExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinExclusive . + +sh:MinInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be >= {$minInclusive}" ; + sh:message "Value is not >= {$minInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinInclusive . + +sh:MinLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have less than {$minLength} characters" ; + sh:message "Value has less than {$minLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinLength . + +sh:NodeConstraintComponent sh:message "Value does not have shape {$node}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNode" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:NodeKindConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have node kind {$nodeKind}" ; + sh:message "Value does not have node kind {$nodeKind}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNodeKind" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasNodeKind . + +sh:NotConstraintComponent sh:labelTemplate "Value must not have shape {$not}" ; + sh:message "Value does have shape {$not}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNot" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:OrConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateOr" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:PatternConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must match pattern \"{$pattern}\"" ; + sh:message "Value does not match pattern \"{$pattern}\"" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validatePattern" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasPattern . + +sh:QualifiedMaxCountConstraintComponent sh:labelTemplate "No more than {$qualifiedMaxCount} values can have shape {$qualifiedValueShape}" ; + sh:message "More than {$qualifiedMaxCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:QualifiedMinCountConstraintComponent sh:labelTemplate "No fewer than {$qualifiedMinCount} values can have shape {$qualifiedValueShape}" ; + sh:message "Fewer than {$qualifiedMinCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:Rule dash:abstract true . + +sh:Rules a rdfs:Resource ; + rdfs:label "SHACL Rules" ; + rdfs:comment "The SHACL rules entailment regime." ; + rdfs:seeAlso <https://www.w3.org/TR/shacl-af/#Rules> . + +sh:TargetType dash:abstract true . + +sh:UniqueLangConstraintComponent dash:localConstraint true ; + sh:labelTemplate "No language can be used more than once" ; + sh:message "Language \"{?lang}\" used more than once" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueLangProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?lang + WHERE { + { + FILTER sameTerm($uniqueLang, true) . + } + $this $PATH ?value . + BIND (lang(?value) AS ?lang) . + FILTER (bound(?lang) && ?lang != "") . + FILTER EXISTS { + $this $PATH ?otherValue . + FILTER (?otherValue != ?value && ?lang = lang(?otherValue)) . + } + } + """ ] . + +sh:XoneConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateXone" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:order rdfs:range xsd:decimal . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<https://tenet.tetras-libre.fr/transduction-schemes> a owl:Ontology ; + owl:imports <http://datashapes.org/dash> . + +cts:batch_execution_1 a cts:batch_execution ; + rdfs:label "batch execution 1" . + +cts:class_generation a owl:Class, + sh:NodeShape ; + rdfs:label "class generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net . + +cts:dev_schemes a owl:Class, + sh:NodeShape ; + rdfs:label "dev schemes" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_add-event, + cts:old_add-state-property, + cts:old_compose-agt-verb-obj-as-simple-event, + cts:old_compose-aoj-verb-obj-as-simple-state-property, + cts:old_compute-domain-range-of-event-object-properties, + cts:old_compute-domain-range-of-state-property-object-properties . + +cts:generation a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:net_extension a owl:Class, + sh:NodeShape ; + rdfs:label "net extension" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:extend-atom-list-net, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:specify-axis-of-atom-list-net . + +cts:preprocessing a owl:Class, + sh:NodeShape ; + rdfs:label "preprocessing" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:bypass-reification, + cts:define-uw-id, + cts:link-to-scope-entry, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:relation_generation a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property, + cts:old_link-classes-by-relation-property . + +cts:relation_generation_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:generate-event-class, + cts:generate-relation-property . + +cts:relation_generation_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property . + +cts:relation_generation_3_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_link-classes-by-relation-property . + +cts:relation_generation_3_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:link-instances-by-relation-property . + +cts:relation_generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +<https://unl.tetras-libre.fr/rdf/schema#@ability> a owl:Class ; + rdfs:label "ability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@about> a owl:Class ; + rdfs:label "about" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@above> a owl:Class ; + rdfs:label "above" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@according_to> a owl:Class ; + rdfs:label "according to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@across> a owl:Class ; + rdfs:label "across" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@active> a owl:Class ; + rdfs:label "active" ; + rdfs:subClassOf unl:voice ; + skos:definition "He built this house in 1895" . + +<https://unl.tetras-libre.fr/rdf/schema#@adjective> a owl:Class ; + rdfs:label "adjective" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@adverb> a owl:Class ; + rdfs:label "adverb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@advice> a owl:Class ; + rdfs:label "advice" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@after> a owl:Class ; + rdfs:label "after" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@again> a owl:Class ; + rdfs:label "again" ; + rdfs:subClassOf unl:positive ; + skos:definition "iterative" . + +<https://unl.tetras-libre.fr/rdf/schema#@against> a owl:Class ; + rdfs:label "against" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@agreement> a owl:Class ; + rdfs:label "agreement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@all> a owl:Class ; + rdfs:label "all" ; + rdfs:subClassOf unl:quantification ; + skos:definition "universal quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@almost> a owl:Class ; + rdfs:label "almost" ; + rdfs:subClassOf unl:degree ; + skos:definition "approximative" . + +<https://unl.tetras-libre.fr/rdf/schema#@along> a owl:Class ; + rdfs:label "along" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@also> a owl:Class ; + rdfs:label "also" ; + rdfs:subClassOf unl:degree, + unl:specification ; + skos:definition "repetitive" . + +<https://unl.tetras-libre.fr/rdf/schema#@although> a owl:Class ; + rdfs:label "although" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@among> a owl:Class ; + rdfs:label "among" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@and> a owl:Class ; + rdfs:label "and" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@anger> a owl:Class ; + rdfs:label "anger" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@angle_bracket> a owl:Class ; + rdfs:label "angle bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@anterior> a owl:Class ; + rdfs:label "anterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "before some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@anthropomorphism> a owl:Class ; + rdfs:label "anthropomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Ascribing human characteristics to something that is not human, such as an animal or a god (see zoomorphism)" . + +<https://unl.tetras-libre.fr/rdf/schema#@antiphrasis> a owl:Class ; + rdfs:label "antiphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Word or words used contradictory to their usual meaning, often with irony" . + +<https://unl.tetras-libre.fr/rdf/schema#@antonomasia> a owl:Class ; + rdfs:label "antonomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a phrase for a proper name or vice versa" . + +<https://unl.tetras-libre.fr/rdf/schema#@any> a owl:Class ; + rdfs:label "any" ; + rdfs:subClassOf unl:quantification ; + skos:definition "existential quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@archaic> a owl:Class ; + rdfs:label "archaic" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@around> a owl:Class ; + rdfs:label "around" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@as> a owl:Class ; + rdfs:label "as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as.@if> a owl:Class ; + rdfs:label "as.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_far_as> a owl:Class ; + rdfs:label "as far as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_of> a owl:Class ; + rdfs:label "as of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_per> a owl:Class ; + rdfs:label "as per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_regards> a owl:Class ; + rdfs:label "as regards" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_well_as> a owl:Class ; + rdfs:label "as well as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@assertion> a owl:Class ; + rdfs:label "assertion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@assumption> a owl:Class ; + rdfs:label "assumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@at> a owl:Class ; + rdfs:label "at" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@attention> a owl:Class ; + rdfs:label "attention" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@back> a owl:Class ; + rdfs:label "back" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@barring> a owl:Class ; + rdfs:label "barring" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because> a owl:Class ; + rdfs:label "because" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because_of> a owl:Class ; + rdfs:label "because of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@before> a owl:Class ; + rdfs:label "before" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@behind> a owl:Class ; + rdfs:label "behind" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@belief> a owl:Class ; + rdfs:label "belief" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@below> a owl:Class ; + rdfs:label "below" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beside> a owl:Class ; + rdfs:label "beside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@besides> a owl:Class ; + rdfs:label "besides" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@between> a owl:Class ; + rdfs:label "between" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beyond> a owl:Class ; + rdfs:label "beyond" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@both> a owl:Class ; + rdfs:label "both" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@bottom> a owl:Class ; + rdfs:label "bottom" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@brace> a owl:Class ; + rdfs:label "brace" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@brachylogia> a owl:Class ; + rdfs:label "brachylogia" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of conjunctions between a series of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@but> a owl:Class ; + rdfs:label "but" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by> a owl:Class ; + rdfs:label "by" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by_means_of> a owl:Class ; + rdfs:label "by means of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@catachresis> a owl:Class ; + rdfs:label "catachresis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "use an existing word to denote something that has no name in the current language" . + +<https://unl.tetras-libre.fr/rdf/schema#@causative> a owl:Class ; + rdfs:label "causative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "causative" . + +<https://unl.tetras-libre.fr/rdf/schema#@certain> a owl:Class ; + rdfs:label "certain" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@chiasmus> a owl:Class ; + rdfs:label "chiasmus" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "reversal of grammatical structures in successive clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@circa> a owl:Class ; + rdfs:label "circa" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@climax> a owl:Class ; + rdfs:label "climax" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "arrangement of words in order of increasing importance" . + +<https://unl.tetras-libre.fr/rdf/schema#@clockwise> a owl:Class ; + rdfs:label "clockwise" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@colloquial> a owl:Class ; + rdfs:label "colloquial" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@command> a owl:Class ; + rdfs:label "command" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@comment> a owl:Class ; + rdfs:label "comment" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being said about the topic" . + +<https://unl.tetras-libre.fr/rdf/schema#@concerning> a owl:Class ; + rdfs:label "concerning" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@conclusion> a owl:Class ; + rdfs:label "conclusion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@condition> a owl:Class ; + rdfs:label "condition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@confirmation> a owl:Class ; + rdfs:label "confirmation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consent> a owl:Class ; + rdfs:label "consent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@consequence> a owl:Class ; + rdfs:label "consequence" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consonance> a owl:Class ; + rdfs:label "consonance" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of consonant sounds without the repetition of the vowel sounds" . + +<https://unl.tetras-libre.fr/rdf/schema#@contact> a owl:Class ; + rdfs:label "contact" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@contentment> a owl:Class ; + rdfs:label "contentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@continuative> a owl:Class ; + rdfs:label "continuative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "continuous" . + +<https://unl.tetras-libre.fr/rdf/schema#@conviction> a owl:Class ; + rdfs:label "conviction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@decision> a owl:Class ; + rdfs:label "decision" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@deduction> a owl:Class ; + rdfs:label "deduction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@desire> a owl:Class ; + rdfs:label "desire" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@despite> a owl:Class ; + rdfs:label "despite" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@determination> a owl:Class ; + rdfs:label "determination" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@dialect> a owl:Class ; + rdfs:label "dialect" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@disagreement> a owl:Class ; + rdfs:label "disagreement" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@discontentment> a owl:Class ; + rdfs:label "discontentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@dissent> a owl:Class ; + rdfs:label "dissent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@distal> a owl:Class ; + rdfs:label "distal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "far from the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_negative> a owl:Class ; + rdfs:label "double negative" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Grammar construction that can be used as an expression and it is the repetition of negative words" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_parenthesis> a owl:Class ; + rdfs:label "double parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@double_quote> a owl:Class ; + rdfs:label "double quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@doubt> a owl:Class ; + rdfs:label "doubt" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@down> a owl:Class ; + rdfs:label "down" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@dual> a owl:Class ; + rdfs:label "dual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@due_to> a owl:Class ; + rdfs:label "due to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@during> a owl:Class ; + rdfs:label "during" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@dysphemism> a owl:Class ; + rdfs:label "dysphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a harsher, more offensive, or more disagreeable term for another. Opposite of euphemism" . + +<https://unl.tetras-libre.fr/rdf/schema#@each> a owl:Class ; + rdfs:label "each" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@either> a owl:Class ; + rdfs:label "either" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@ellipsis> a owl:Class ; + rdfs:label "ellipsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@emphasis> a owl:Class ; + rdfs:label "emphasis" ; + rdfs:subClassOf unl:positive ; + skos:definition "emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@enough> a owl:Class ; + rdfs:label "enough" ; + rdfs:subClassOf unl:positive ; + skos:definition "sufficiently (enough)" . + +<https://unl.tetras-libre.fr/rdf/schema#@entire> a owl:Class ; + rdfs:label "entire" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@entry> a owl:Class ; + rdfs:label "entry" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "sentence head" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanalepsis> a owl:Class ; + rdfs:label "epanalepsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of the initial word or words of a clause or sentence at the end of the clause or sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanorthosis> a owl:Class ; + rdfs:label "epanorthosis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Immediate and emphatic self-correction, often following a slip of the tongue" . + +<https://unl.tetras-libre.fr/rdf/schema#@equal> a owl:Class ; + rdfs:label "equal" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of equality" . + +<https://unl.tetras-libre.fr/rdf/schema#@equivalent> a owl:Class ; + rdfs:label "equivalent" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@euphemism> a owl:Class ; + rdfs:label "euphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a less offensive or more agreeable term for another" . + +<https://unl.tetras-libre.fr/rdf/schema#@even> a owl:Class ; + rdfs:label "even" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@even.@if> a owl:Class ; + rdfs:label "even.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except> a owl:Class ; + rdfs:label "except" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except.@if> a owl:Class ; + rdfs:label "except.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except_for> a owl:Class ; + rdfs:label "except for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exclamation> a owl:Class ; + rdfs:label "exclamation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@excluding> a owl:Class ; + rdfs:label "excluding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exhortation> a owl:Class ; + rdfs:label "exhortation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@expectation> a owl:Class ; + rdfs:label "expectation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@experiential> a owl:Class ; + rdfs:label "experiential" ; + rdfs:subClassOf unl:aspect ; + skos:definition "experience" . + +<https://unl.tetras-libre.fr/rdf/schema#@extra> a owl:Class ; + rdfs:label "extra" ; + rdfs:subClassOf unl:positive ; + skos:definition "excessively (too)" . + +<https://unl.tetras-libre.fr/rdf/schema#@failing> a owl:Class ; + rdfs:label "failing" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@familiar> a owl:Class ; + rdfs:label "familiar" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@far> a owl:Class ; + rdfs:label "far" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@fear> a owl:Class ; + rdfs:label "fear" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@female> a owl:Class ; + rdfs:label "female" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@focus> a owl:Class ; + rdfs:label "focus" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "information that is contrary to the presuppositions of the interlocutor" . + +<https://unl.tetras-libre.fr/rdf/schema#@following> a owl:Class ; + rdfs:label "following" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@for> a owl:Class ; + rdfs:label "for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@from> a owl:Class ; + rdfs:label "from" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@front> a owl:Class ; + rdfs:label "front" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@future> a owl:Class ; + rdfs:label "future" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time after the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@generic> a owl:Class ; + rdfs:label "generic" ; + rdfs:subClassOf unl:quantification ; + skos:definition "no quantification" . + +<https://unl.tetras-libre.fr/rdf/schema#@given> a owl:Class ; + rdfs:label "given" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@habitual> a owl:Class ; + rdfs:label "habitual" ; + rdfs:subClassOf unl:aspect ; + skos:definition "habitual" . + +<https://unl.tetras-libre.fr/rdf/schema#@half> a owl:Class ; + rdfs:label "half" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@hesitation> a owl:Class ; + rdfs:label "hesitation" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@hope> a owl:Class ; + rdfs:label "hope" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@hyperbole> a owl:Class ; + rdfs:label "hyperbole" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of exaggerated terms for emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@hypothesis> a owl:Class ; + rdfs:label "hypothesis" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@if> a owl:Class ; + rdfs:label "if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@if.@only> a owl:Class ; + rdfs:label "if.@only" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@imperfective> a owl:Class ; + rdfs:label "imperfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "uncompleted" . + +<https://unl.tetras-libre.fr/rdf/schema#@in> a owl:Class ; + rdfs:label "in" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@in_accordance_with> a owl:Class ; + rdfs:label "in accordance with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_addition_to> a owl:Class ; + rdfs:label "in addition to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case> a owl:Class ; + rdfs:label "in case" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case_of> a owl:Class ; + rdfs:label "in case of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_favor_of> a owl:Class ; + rdfs:label "in favor of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_place_of> a owl:Class ; + rdfs:label "in place of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_spite_of> a owl:Class ; + rdfs:label "in spite of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inceptive> a owl:Class ; + rdfs:label "inceptive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "beginning" . + +<https://unl.tetras-libre.fr/rdf/schema#@inchoative> a owl:Class ; + rdfs:label "inchoative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "change of state" . + +<https://unl.tetras-libre.fr/rdf/schema#@including> a owl:Class ; + rdfs:label "including" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inferior> a owl:Class ; + rdfs:label "inferior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@inside> a owl:Class ; + rdfs:label "inside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@instead_of> a owl:Class ; + rdfs:label "instead of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@intention> a owl:Class ; + rdfs:label "intention" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interrogation> a owl:Class ; + rdfs:label "interrogation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interruption> a owl:Class ; + rdfs:label "interruption" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "insertion of a clause or sentence in a place where it interrupts the natural flow of the sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@intimate> a owl:Class ; + rdfs:label "intimate" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@invitation> a owl:Class ; + rdfs:label "invitation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@irony> a owl:Class ; + rdfs:label "irony" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of word in a way that conveys a meaning opposite to its usual meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@iterative> a owl:Class ; + rdfs:label "iterative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "repetition" . + +<https://unl.tetras-libre.fr/rdf/schema#@jargon> a owl:Class ; + rdfs:label "jargon" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@judgement> a owl:Class ; + rdfs:label "judgement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@least> a owl:Class ; + rdfs:label "least" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@left> a owl:Class ; + rdfs:label "left" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@less> a owl:Class ; + rdfs:label "less" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@like> a owl:Class ; + rdfs:label "like" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@literary> a owl:Class ; + rdfs:label "literary" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@majority> a owl:Class ; + rdfs:label "majority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a major part" . + +<https://unl.tetras-libre.fr/rdf/schema#@male> a owl:Class ; + rdfs:label "male" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@maybe> a owl:Class ; + rdfs:label "maybe" ; + rdfs:subClassOf unl:polarity ; + skos:definition "dubitative" . + +<https://unl.tetras-libre.fr/rdf/schema#@medial> a owl:Class ; + rdfs:label "medial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@metaphor> a owl:Class ; + rdfs:label "metaphor" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Stating one entity is another for the purpose of comparing them in quality" . + +<https://unl.tetras-libre.fr/rdf/schema#@metonymy> a owl:Class ; + rdfs:label "metonymy" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a word to suggest what is really meant" . + +<https://unl.tetras-libre.fr/rdf/schema#@minority> a owl:Class ; + rdfs:label "minority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a minor part" . + +<https://unl.tetras-libre.fr/rdf/schema#@minus> a owl:Class ; + rdfs:label "minus" ; + rdfs:subClassOf unl:positive ; + skos:definition "downtoned (a little)" . + +<https://unl.tetras-libre.fr/rdf/schema#@more> a owl:Class ; + rdfs:label "more" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@most> a owl:Class ; + rdfs:label "most" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@multal> a owl:Class ; + rdfs:label "multal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@narrative> a owl:Class ; + rdfs:label "narrative" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@near> a owl:Class ; + rdfs:label "near" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@necessity> a owl:Class ; + rdfs:label "necessity" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@neither> a owl:Class ; + rdfs:label "neither" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@neutral> a owl:Class ; + rdfs:label "neutral" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@no> a owl:Class ; + rdfs:label "no" ; + rdfs:subClassOf unl:quantification ; + skos:definition "none" . + +<https://unl.tetras-libre.fr/rdf/schema#@not> a owl:Class ; + rdfs:label "not" ; + rdfs:subClassOf unl:polarity ; + skos:definition "negative" . + +<https://unl.tetras-libre.fr/rdf/schema#@notwithstanding> a owl:Class ; + rdfs:label "notwithstanding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@noun> a owl:Class ; + rdfs:label "noun" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@obligation> a owl:Class ; + rdfs:label "obligation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@of> a owl:Class ; + rdfs:label "of" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@off> a owl:Class ; + rdfs:label "off" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on> a owl:Class ; + rdfs:label "on" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@on_account_of> a owl:Class ; + rdfs:label "on account of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on_behalf_of> a owl:Class ; + rdfs:label "on behalf of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@one> a owl:Class ; + rdfs:label "1" ; + rdfs:subClassOf unl:person ; + skos:definition "first person speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@only> a owl:Class ; + rdfs:label "only" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@onomatopoeia> a owl:Class ; + rdfs:label "onomatopoeia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Words that sound like their meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@opinion> a owl:Class ; + rdfs:label "opinion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@opposite> a owl:Class ; + rdfs:label "opposite" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@or> a owl:Class ; + rdfs:label "or" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@ordinal> a owl:Class ; + rdfs:label "ordinal" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@other> a owl:Class ; + rdfs:label "other" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@outside> a owl:Class ; + rdfs:label "outside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@over> a owl:Class ; + rdfs:label "over" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@owing_to> a owl:Class ; + rdfs:label "owing to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@own> a owl:Class ; + rdfs:label "own" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@oxymoron> a owl:Class ; + rdfs:label "oxymoron" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using two terms together, that normally contradict each other" . + +<https://unl.tetras-libre.fr/rdf/schema#@pace> a owl:Class ; + rdfs:label "pace" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@pain> a owl:Class ; + rdfs:label "pain" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@paradox> a owl:Class ; + rdfs:label "paradox" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of apparently contradictory ideas to point out some underlying truth" . + +<https://unl.tetras-libre.fr/rdf/schema#@parallelism> a owl:Class ; + rdfs:label "parallelism" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "use of similar structures in two or more clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@parenthesis> a owl:Class ; + rdfs:label "parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@paronomasia> a owl:Class ; + rdfs:label "paronomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "A form of pun, in which words similar in sound but with different meanings are used" . + +<https://unl.tetras-libre.fr/rdf/schema#@part> a owl:Class ; + rdfs:label "part" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@passive> a owl:Class ; + rdfs:label "passive" ; + rdfs:subClassOf unl:voice ; + skos:definition "This house was built in 1895." . + +<https://unl.tetras-libre.fr/rdf/schema#@past> a owl:Class ; + rdfs:label "past" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time before the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@paucal> a owl:Class ; + rdfs:label "paucal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@pejorative> a owl:Class ; + rdfs:label "pejorative" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@per> a owl:Class ; + rdfs:label "per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@perfect> a owl:Class ; + rdfs:label "perfect" ; + rdfs:subClassOf unl:aspect ; + skos:definition "perfect" . + +<https://unl.tetras-libre.fr/rdf/schema#@perfective> a owl:Class ; + rdfs:label "perfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "completed" . + +<https://unl.tetras-libre.fr/rdf/schema#@periphrasis> a owl:Class ; + rdfs:label "periphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using several words instead of few" . + +<https://unl.tetras-libre.fr/rdf/schema#@permission> a owl:Class ; + rdfs:label "permission" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@permissive> a owl:Class ; + rdfs:label "permissive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "permissive" . + +<https://unl.tetras-libre.fr/rdf/schema#@persistent> a owl:Class ; + rdfs:label "persistent" ; + rdfs:subClassOf unl:aspect ; + skos:definition "persistent" . + +<https://unl.tetras-libre.fr/rdf/schema#@person> a owl:Class ; + rdfs:label "person" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@pleonasm> a owl:Class ; + rdfs:label "pleonasm" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "Use of superfluous or redundant words" . + +<https://unl.tetras-libre.fr/rdf/schema#@plus> a owl:Class ; + rdfs:label "plus" ; + rdfs:subClassOf unl:positive ; + skos:definition "intensified (very)" . + +<https://unl.tetras-libre.fr/rdf/schema#@polite> a owl:Class ; + rdfs:label "polite" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@polyptoton> a owl:Class ; + rdfs:label "polyptoton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of words derived from the same root" . + +<https://unl.tetras-libre.fr/rdf/schema#@polysyndeton> a owl:Class ; + rdfs:label "polysyndeton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of conjunctions" . + +<https://unl.tetras-libre.fr/rdf/schema#@possibility> a owl:Class ; + rdfs:label "possibility" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@posterior> a owl:Class ; + rdfs:label "posterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "after some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@prediction> a owl:Class ; + rdfs:label "prediction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@present> a owl:Class ; + rdfs:label "present" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@presumption> a owl:Class ; + rdfs:label "presumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prior_to> a owl:Class ; + rdfs:label "prior to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@probability> a owl:Class ; + rdfs:label "probability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@progressive> a owl:Class ; + rdfs:label "progressive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "ongoing" . + +<https://unl.tetras-libre.fr/rdf/schema#@prohibition> a owl:Class ; + rdfs:label "prohibition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@promise> a owl:Class ; + rdfs:label "promise" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prospective> a owl:Class ; + rdfs:label "prospective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "imminent" . + +<https://unl.tetras-libre.fr/rdf/schema#@proximal> a owl:Class ; + rdfs:label "proximal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@pursuant_to> a owl:Class ; + rdfs:label "pursuant to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@qua> a owl:Class ; + rdfs:label "qua" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@quadrual> a owl:Class ; + rdfs:label "quadrual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@recent> a owl:Class ; + rdfs:label "recent" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "close to the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@reciprocal> a owl:Class ; + rdfs:label "reciprocal" ; + rdfs:subClassOf unl:voice ; + skos:definition "They killed each other." . + +<https://unl.tetras-libre.fr/rdf/schema#@reflexive> a owl:Class ; + rdfs:label "reflexive" ; + rdfs:subClassOf unl:voice ; + skos:definition "He killed himself." . + +<https://unl.tetras-libre.fr/rdf/schema#@regarding> a owl:Class ; + rdfs:label "regarding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regardless_of> a owl:Class ; + rdfs:label "regardless of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regret> a owl:Class ; + rdfs:label "regret" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@relative> a owl:Class ; + rdfs:label "relative" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "relative clause head" . + +<https://unl.tetras-libre.fr/rdf/schema#@relief> a owl:Class ; + rdfs:label "relief" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@remote> a owl:Class ; + rdfs:label "remote" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "remote from the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@repetition> a owl:Class ; + rdfs:label "repetition" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Repeated usage of word(s)/group of words in the same sentence to create a poetic/rhythmic effect" . + +<https://unl.tetras-libre.fr/rdf/schema#@request> a owl:Class ; + rdfs:label "request" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@result> a owl:Class ; + rdfs:label "result" ; + rdfs:subClassOf unl:aspect ; + skos:definition "result" . + +<https://unl.tetras-libre.fr/rdf/schema#@reverential> a owl:Class ; + rdfs:label "reverential" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@right> a owl:Class ; + rdfs:label "right" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@round> a owl:Class ; + rdfs:label "round" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@same> a owl:Class ; + rdfs:label "same" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@save> a owl:Class ; + rdfs:label "save" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@side> a owl:Class ; + rdfs:label "side" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@since> a owl:Class ; + rdfs:label "since" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@single_quote> a owl:Class ; + rdfs:label "single quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@singular> a owl:Class ; + rdfs:label "singular" ; + rdfs:subClassOf unl:quantification ; + skos:definition "default" . + +<https://unl.tetras-libre.fr/rdf/schema#@slang> a owl:Class ; + rdfs:label "slang" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@so> a owl:Class ; + rdfs:label "so" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@speculation> a owl:Class ; + rdfs:label "speculation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@speech> a owl:Class ; + rdfs:label "speech" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "direct speech" . + +<https://unl.tetras-libre.fr/rdf/schema#@square_bracket> a owl:Class ; + rdfs:label "square bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@subsequent_to> a owl:Class ; + rdfs:label "subsequent to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@such> a owl:Class ; + rdfs:label "such" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@suggestion> a owl:Class ; + rdfs:label "suggestion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@superior> a owl:Class ; + rdfs:label "superior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@surprise> a owl:Class ; + rdfs:label "surprise" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@symploce> a owl:Class ; + rdfs:label "symploce" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "combination of anaphora and epistrophe" . + +<https://unl.tetras-libre.fr/rdf/schema#@synecdoche> a owl:Class ; + rdfs:label "synecdoche" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Form of metonymy, in which a part stands for the whole" . + +<https://unl.tetras-libre.fr/rdf/schema#@synesthesia> a owl:Class ; + rdfs:label "synesthesia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Description of one kind of sense impression by using words that normally describe another." . + +<https://unl.tetras-libre.fr/rdf/schema#@taboo> a owl:Class ; + rdfs:label "taboo" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@terminative> a owl:Class ; + rdfs:label "terminative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "cessation" . + +<https://unl.tetras-libre.fr/rdf/schema#@than> a owl:Class ; + rdfs:label "than" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thanks_to> a owl:Class ; + rdfs:label "thanks to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@that_of> a owl:Class ; + rdfs:label "that of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thing> a owl:Class ; + rdfs:label "thing" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@threat> a owl:Class ; + rdfs:label "threat" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@three> a owl:Class ; + rdfs:label "3" ; + rdfs:subClassOf unl:person ; + skos:definition "third person" . + +<https://unl.tetras-libre.fr/rdf/schema#@through> a owl:Class ; + rdfs:label "through" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@throughout> a owl:Class ; + rdfs:label "throughout" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@times> a owl:Class ; + rdfs:label "times" ; + rdfs:subClassOf unl:quantification ; + skos:definition "multiplicative" . + +<https://unl.tetras-libre.fr/rdf/schema#@title> a owl:Class ; + rdfs:label "title" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@to> a owl:Class ; + rdfs:label "to" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@top> a owl:Class ; + rdfs:label "top" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@topic> a owl:Class ; + rdfs:label "topic" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being talked about" . + +<https://unl.tetras-libre.fr/rdf/schema#@towards> a owl:Class ; + rdfs:label "towards" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@trial> a owl:Class ; + rdfs:label "trial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@tuple> a owl:Class ; + rdfs:label "tuple" ; + rdfs:subClassOf unl:quantification ; + skos:definition "collective" . + +<https://unl.tetras-libre.fr/rdf/schema#@two> a owl:Class ; + rdfs:label "2" ; + rdfs:subClassOf unl:person ; + skos:definition "second person addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@under> a owl:Class ; + rdfs:label "under" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@unit> a owl:Class ; + rdfs:label "unit" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@unless> a owl:Class ; + rdfs:label "unless" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@unlike> a owl:Class ; + rdfs:label "unlike" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@until> a owl:Class ; + rdfs:label "until" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@up> a owl:Class ; + rdfs:label "up" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@verb> a owl:Class ; + rdfs:label "verb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@versus> a owl:Class ; + rdfs:label "versus" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@vocative> a owl:Class ; + rdfs:label "vocative" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@warning> a owl:Class ; + rdfs:label "warning" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@weariness> a owl:Class ; + rdfs:label "weariness" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@wh> a owl:Class ; + rdfs:label "wh" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@with> a owl:Class ; + rdfs:label "with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_regard_to> a owl:Class ; + rdfs:label "with regard to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_relation_to> a owl:Class ; + rdfs:label "with relation to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_respect_to> a owl:Class ; + rdfs:label "with respect to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@within> a owl:Class ; + rdfs:label "within" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@without> a owl:Class ; + rdfs:label "without" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@worth> a owl:Class ; + rdfs:label "worth" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@yes> a owl:Class ; + rdfs:label "yes" ; + rdfs:subClassOf unl:polarity ; + skos:definition "affirmative" . + +<https://unl.tetras-libre.fr/rdf/schema#@zoomorphism> a owl:Class ; + rdfs:label "zoomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Applying animal characteristics to humans or gods" . + +unl:UNLKB_Top_Concept a owl:Class ; + rdfs:comment "Top concepts of a UNL Knoledge Base that shall not correspond to a UW." ; + rdfs:subClassOf unl:UNLKB_Node, + unl:Universal_Word . + +unl:UNL_Paragraph a owl:Class ; + rdfs:comment """For more information about UNL Paragraphs, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:and a owl:Class, + owl:ObjectProperty ; + rdfs:label "and" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "conjunction"@en ; + skos:definition "Used to state a conjunction between two entities."@en ; + skos:example """John and Mary = and(John;Mary) +both John and Mary = and(John;Mary) +neither John nor Mary = and(John;Mary) +John as well as Mary = and(John;Mary)"""@en . + +unl:ant a owl:Class, + owl:ObjectProperty ; + rdfs:label "ant" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "opposition or concession"@en ; + skos:definition "Used to indicate that two entities do not share the same meaning or reference. Also used to indicate concession."@en ; + skos:example """John is not Peter = ant(Peter;John) +3 + 2 != 6 = ant(6;3+2) +Although he's quiet, he's not shy = ant(he's not shy;he's quiet)"""@en . + +unl:bas a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas" ; + rdfs:subClassOf unl:Universal_Relation, + unl:per ; + rdfs:subPropertyOf unl:per ; + skos:altLabel "basis for a comparison" . + +unl:cnt a owl:Class, + owl:ObjectProperty ; + rdfs:label "cnt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "content or theme"@en ; + skos:definition "The object of an stative or experiental verb, or the theme of an entity."@en ; + skos:example """John has two daughters = cnt(have;two daughters) +the book belongs to Mary = cnt(belong;Mary) +the book contains many pictures = cnt(contain;many pictures) +John believes in Mary = cnt(believe;Mary) +John saw Mary = cnt(saw;Mary) +John loves Mary = cnt(love;Mary) +The explosion was heard by everyone = cnt(hear;explosion) +a book about Peter = cnt(book;Peter)"""@en . + +unl:con a owl:Class, + owl:ObjectProperty ; + rdfs:label "con" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "condition"@en ; + skos:definition "A condition of an event."@en ; + skos:example """If I see him, I will tell him = con(I will tell him;I see him) +I will tell him if I see him = con(I will tell him;I see him)"""@en . + +unl:coo a owl:Class, + owl:ObjectProperty ; + rdfs:label "coo" ; + rdfs:subClassOf unl:Universal_Relation, + unl:dur ; + rdfs:subPropertyOf unl:dur ; + skos:altLabel "co-occurrence" . + +unl:equ a owl:Class, + owl:ObjectProperty ; + rdfs:label "equ" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "synonym or paraphrase"@en ; + skos:definition "Used to indicate that two entities share the same meaning or reference. Also used to indicate semantic apposition."@en ; + skos:example """The morning star is the evening star = equ(evening star;morning star) +3 + 2 = 5 = equ(5;3+2) +UN (United Nations) = equ(UN;United Nations) +John, the brother of Mary = equ(John;the brother of Mary)"""@en . + +unl:exp a owl:Class, + owl:ObjectProperty ; + rdfs:label "exp" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "experiencer"@en ; + skos:definition "A participant in an action or process who receives a sensory impression or is the locus of an experiential event."@en ; + skos:example """John believes in Mary = exp(believe;John) +John saw Mary = exp(saw;John) +John loves Mary = exp(love;John) +The explosion was heard by everyone = exp(hear;everyone)"""@en . + +unl:fld a owl:Class, + owl:ObjectProperty ; + rdfs:label "fld" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "field"@en ; + skos:definition "Used to indicate the semantic domain of an entity."@en ; + skos:example "sentence (linguistics) = fld(sentence;linguistics)"@en . + +unl:gol a owl:Class, + owl:ObjectProperty ; + rdfs:label "gol" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "final state, place, destination or recipient"@en ; + skos:definition "The final state, place, destination or recipient of an entity or event."@en ; + skos:example """John received the book = gol(received;John) +John won the prize = gol(won;John) +John changed from poor to rich = gol(changed;rich) +John gave the book to Mary = gol(gave;Mary) +He threw the book at me = gol(threw;me) +John goes to NY = gol(go;NY) +train to NY = gol(train;NY)"""@en . + +unl:has_attribute a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:attribute ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_id a owl:AnnotationProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_index a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range xsd:integer ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_master_definition a owl:AnnotationProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range xsd:string ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_scope a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Scope ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_scope_of . + +unl:has_source a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:equivalentProperty unl:is_source_of . + +unl:has_target a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_target_of . + +unl:icl a owl:Class, + owl:ObjectProperty ; + rdfs:label "icl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "hyponymy, is a kind of"@en ; + skos:definition "Used to refer to a subclass of a class."@en ; + skos:example "Dogs are mammals = icl(mammal;dogs)"@en . + +unl:iof a owl:Class, + owl:ObjectProperty ; + rdfs:label "iof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is an instance of"@en ; + skos:definition "Used to refer to an instance or individual element of a class."@en ; + skos:example "John is a human being = iof(human being;John)"@en . + +unl:is_substructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_superstructure_of . + +unl:lpl a owl:Class, + owl:ObjectProperty ; + rdfs:label "lpl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "logical place"@en ; + skos:definition "A non-physical place where an entity or event occurs or a state exists."@en ; + skos:example """John works in politics = lpl(works;politics) +John is in love = lpl(John;love) +officer in command = lpl(officer;command)"""@en . + +unl:mat a owl:Class, + owl:ObjectProperty ; + rdfs:label "mat" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "material"@en ; + skos:definition "Used to indicate the material of which an entity is made."@en ; + skos:example """A statue in bronze = mat(statue;bronze) +a wood box = mat(box;wood) +a glass mug = mat(mug;glass)"""@en . + +unl:met a owl:Class, + owl:ObjectProperty ; + rdfs:label "met" ; + rdfs:subClassOf unl:ins ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:ins ; + skos:altLabel "method" . + +unl:nam a owl:Class, + owl:ObjectProperty ; + rdfs:label "nam" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "name"@en ; + skos:definition "The name of an entity."@en ; + skos:example """The city of New York = nam(city;New York) +my friend Willy = nam(friend;Willy)"""@en . + +unl:opl a owl:Class, + owl:ObjectProperty ; + rdfs:label "opl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "objective place"@en ; + skos:definition "A place affected by an action or process."@en ; + skos:example """John was hit in the face = opl(hit;face) +John fell in the water = opl(fell;water)"""@en . + +unl:pof a owl:Class, + owl:ObjectProperty ; + rdfs:label "pof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is part of"@en ; + skos:definition "Used to refer to a part of a whole."@en ; + skos:example "John is part of the family = pof(family;John)"@en . + +unl:pos a owl:Class, + owl:ObjectProperty ; + rdfs:label "pos" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "possessor"@en ; + skos:definition "The possessor of a thing."@en ; + skos:example """the book of John = pos(book;John) +John's book = pos(book;John) +his book = pos(book;he)"""@en . + +unl:ptn a owl:Class, + owl:ObjectProperty ; + rdfs:label "ptn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "partner"@en ; + skos:definition "A secondary (non-focused) participant in an event."@en ; + skos:example """John fights with Peter = ptn(fight;Peter) +John wrote the letter with Peter = ptn(wrote;Peter) +John lives with Peter = ptn(live;Peter)"""@en . + +unl:pur a owl:Class, + owl:ObjectProperty ; + rdfs:label "pur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "purpose"@en ; + skos:definition "The purpose of an entity or event."@en ; + skos:example """John left early in order to arrive early = pur(John left early;arrive early) +You should come to see us = pur(you should come;see us) +book for children = pur(book;children)"""@en . + +unl:qua a owl:Class, + owl:ObjectProperty ; + rdfs:label "qua" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "quantity"@en ; + skos:definition "Used to express the quantity of an entity."@en ; + skos:example """two books = qua(book;2) +a group of students = qua(students;group)"""@en . + +unl:rsn a owl:Class, + owl:ObjectProperty ; + rdfs:label "rsn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "reason"@en ; + skos:definition "The reason of an entity or event."@en ; + skos:example """John left because it was late = rsn(John left;it was late) +John killed Mary because of John = rsn(killed;John)"""@en . + +unl:seq a owl:Class, + owl:ObjectProperty ; + rdfs:label "seq" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "consequence"@en ; + skos:definition "Used to express consequence."@en ; + skos:example "I think therefore I am = seq(I think;I am)"@en . + +unl:src a owl:Class, + owl:ObjectProperty ; + rdfs:label "src" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "initial state, place, origin or source"@en ; + skos:definition "The initial state, place, origin or source of an entity or event."@en ; + skos:example """John came from NY = src(came;NY) +John is from NY = src(John;NY) +train from NY = src(train;NY) +John changed from poor into rich = src(changed;poor) +John received the book from Peter = src(received;Peter) +John withdrew the money from the cashier = src(withdrew;cashier)"""@en . + +unl:tmf a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmf" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "initial time"@en ; + skos:definition "The initial time of an entity or event."@en ; + skos:example "John worked since early = tmf(worked;early)"@en . + +unl:tmt a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmt" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "final time"@en ; + skos:definition "The final time of an entity or event."@en ; + skos:example "John worked until late = tmt(worked;late)"@en . + +unl:via a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas", + "met", + "via" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "intermediate state or place"@en ; + skos:definition "The intermediate place or state of an entity or event."@en ; + skos:example """John went from NY to Geneva through Paris = via(went;Paris) +The baby crawled across the room = via(crawled;across the room)"""@en . + +dash:ActionGroup a dash:ShapeClass ; + rdfs:label "Action group" ; + rdfs:comment "A group of ResourceActions, used to arrange items in menus etc. Similar to sh:PropertyGroups, they may have a sh:order and should have labels (in multiple languages if applicable)." ; + rdfs:subClassOf rdfs:Resource . + +dash:AllObjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All objects target" ; + rdfs:comment "A target containing all objects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allObjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All objects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?anyS ?anyP ?this . +}""" . + +dash:AllSubjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All subjects target" ; + rdfs:comment "A target containing all subjects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allSubjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All subjects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this ?anyP ?anyO . +}""" . + +dash:ClosedByTypesConstraintComponent-closedByTypes a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to indicate that the focus nodes are closed by their types. A constraint violation is reported for each property value of the focus node where the property is not among those that are explicitly declared via sh:property/sh:path in any of the rdf:types of the focus node (and their superclasses). The property rdf:type is always permitted." ; + sh:maxCount 1 ; + sh:path dash:closedByTypes . + +dash:CoExistsWithConstraintComponent-coExistsWith a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "The properties that must co-exist with the surrounding property (path). If the surrounding property path has any value then the given property must also have a value, and vice versa." ; + sh:name "co-exists with" ; + sh:nodeKind sh:IRI ; + sh:path dash:coExistsWith . + +dash:ConstraintReificationShape-message a sh:PropertyShape ; + dash:singleLine true ; + sh:name "messages" ; + sh:nodeKind sh:Literal ; + sh:or dash:StringOrLangString ; + sh:path sh:message . + +dash:ConstraintReificationShape-severity a sh:PropertyShape ; + sh:class sh:Severity ; + sh:maxCount 1 ; + sh:name "severity" ; + sh:nodeKind sh:IRI ; + sh:path sh:severity . + +dash:GraphValidationTestCase a dash:ShapeClass ; + rdfs:label "Graph validation test case" ; + rdfs:comment "A test case that performs SHACL constraint validation on the whole graph and compares the results with the expected validation results stored with the test case. By default this excludes meta-validation (i.e. the validation of the shape definitions themselves). If that's desired, set dash:validateShapes to true." ; + rdfs:subClassOf dash:ValidationTestCase . + +dash:HasValueInConstraintComponent-hasValueIn a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:description "At least one of the value nodes must be a member of the given list." ; + sh:name "has value in" ; + sh:node dash:ListShape ; + sh:path dash:hasValueIn . + +dash:HasValueWithClassConstraintComponent-hasValueWithClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "One of the values of the property path must be an instance of the given class." ; + sh:name "has value with class" ; + sh:nodeKind sh:IRI ; + sh:path dash:hasValueWithClass . + +dash:IndexedConstraintComponent-indexed a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to activate indexing for this property." ; + sh:maxCount 1 ; + sh:name "indexed" ; + sh:path dash:indexed . + +dash:ListNodeShape a sh:NodeShape ; + rdfs:label "List node shape" ; + rdfs:comment "Defines constraints on what it means for a node to be a node within a well-formed RDF list. Note that this does not check whether the rdf:rest items are also well-formed lists as this would lead to unsupported recursion." ; + sh:or ( [ sh:hasValue () ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:rest ] ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:rest ] ] ) . + +dash:ListShape a sh:NodeShape ; + rdfs:label "List shape" ; + rdfs:comment """Defines constraints on what it means for a node to be a well-formed RDF list. + +The focus node must either be rdf:nil or not recursive. Furthermore, this shape uses dash:ListNodeShape as a "helper" to walk through all members of the whole list (including itself).""" ; + sh:or ( [ sh:hasValue () ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + dash:nonRecursive true ; + sh:path [ sh:oneOrMorePath rdf:rest ] ] ] ) ; + sh:property [ a sh:PropertyShape ; + rdfs:comment "Each list member (including this node) must be have the shape dash:ListNodeShape." ; + sh:node dash:ListNodeShape ; + sh:path [ sh:zeroOrMorePath rdf:rest ] ] . + +dash:MultiViewer a dash:ShapeClass ; + rdfs:label "Multi viewer" ; + rdfs:comment "A viewer for multiple/all values at once." ; + rdfs:subClassOf dash:Viewer . + +dash:NonRecursiveConstraintComponent-nonRecursive a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description """Used to state that a property or path must not point back to itself. + +For example, "a person cannot have itself as parent" can be expressed by setting dash:nonRecursive=true for a given sh:path. + +To express that a person cannot have itself among any of its (recursive) parents, use a sh:path with the + operator such as ex:parent+.""" ; + sh:maxCount 1 ; + sh:name "non-recursive" ; + sh:path dash:nonRecursive . + +dash:ParameterConstraintComponent-parameter a sh:Parameter ; + sh:path sh:parameter . + +dash:PrimaryKeyConstraintComponent-uriStart a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "The start of the URIs of well-formed resources. If specified then the associated property/path serves as \"primary key\" for all target nodes (instances). All such target nodes need to have a URI that starts with the given string, followed by the URI-encoded value of the primary key property." ; + sh:maxCount 1 ; + sh:name "URI start" ; + sh:path dash:uriStart . + +dash:RDFQueryJSLibrary a sh:JSLibrary ; + rdfs:label "rdfQuery JavaScript Library" ; + sh:jsLibraryURL "http://datashapes.org/js/rdfquery.js"^^xsd:anyURI . + +dash:ReifiableByConstraintComponent-reifiableBy a sh:Parameter ; + sh:class sh:NodeShape ; + sh:description "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Also, SHACL validators can use it to determine how to validate reified triples. Use dash:None to indicate that no reification should be permitted." ; + sh:maxCount 1 ; + sh:name "reifiable by" ; + sh:nodeKind sh:IRI ; + sh:path dash:reifiableBy . + +dash:RootClassConstraintComponent-rootClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "The root class." ; + sh:name "root class" ; + sh:nodeKind sh:IRI ; + sh:path dash:rootClass . + +dash:ScriptConstraint a dash:ShapeClass ; + rdfs:label "Script constraint" ; + rdfs:comment """The class of constraints that are based on Scripts. Depending on whether dash:onAllValues is set to true, these scripts can access the following pre-assigned variables: + +- focusNode: the focus node of the constraint (a NamedNode) +- if dash:onAllValues is not true: value: the current value node (e.g. a JavaScript string for xsd:string literals, a number for numeric literals or true or false for xsd:boolean literals. All other literals become LiteralNodes, and non-literals become instances of NamedNode) +- if dash:onAllValues is true: values: an array of current value nodes, as above. + +If the expression returns an array then each array member will be mapped to one validation result, following the mapping rules below. + +For string results, a validation result will use the string as sh:message. +For boolean results, a validation result will be produced if the result is false (true means no violation). + +For object results, a validation result will be produced using the value of the field "message" of the object as result message. If the field "value" has a value then this will become the sh:value in the violation. + +Unless another sh:message has been directly returned, the sh:message of the dash:ScriptConstraint will be used, similar to sh:message at SPARQL Constraints. These sh:messages can access the values {$focusNode}, ${value} etc as template variables.""" ; + rdfs:subClassOf dash:Script . + +dash:ScriptConstraintComponent-scriptConstraint a sh:Parameter ; + sh:class dash:ScriptConstraint ; + sh:description "The Script constraint(s) to apply." ; + sh:name "script constraint" ; + sh:path dash:scriptConstraint . + +dash:SingleLineConstraintComponent-singleLine a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to state that the lexical form of literal value nodes must not contain any line breaks. False to state that line breaks are explicitly permitted." ; + sh:group tosh:StringConstraintsPropertyGroup ; + sh:maxCount 1 ; + sh:name "single line" ; + sh:order 30.0 ; + sh:path dash:singleLine . + +dash:StemConstraintComponent-stem a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "If specified then every value node must be an IRI and the IRI must start with the given string value." ; + sh:maxCount 1 ; + sh:name "stem" ; + sh:path dash:stem . + +dash:StringOrLangString a rdf:List ; + rdfs:label "String or langString" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string or rdf:langString." . + +dash:SubSetOfConstraintComponent-subSetOf a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "Can be used to state that all value nodes must also be values of a specified other property at the same focus node." ; + sh:name "sub-set of" ; + sh:nodeKind sh:IRI ; + sh:path dash:subSetOf . + +dash:SymmetricConstraintComponent-symmetric a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "If set to true then if A relates to B then B must relate to A." ; + sh:maxCount 1 ; + sh:name "symmetric" ; + sh:path dash:symmetric . + +dash:UniqueValueForClassConstraintComponent-uniqueValueForClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "States that the values of the property must be unique for all instances of a given class (and its subclasses)." ; + sh:name "unique value for class" ; + sh:nodeKind sh:IRI ; + sh:path dash:uniqueValueForClass . + +dash:ValidationTestCase a dash:ShapeClass ; + rdfs:label "Validation test case" ; + dash:abstract true ; + rdfs:comment "Abstract superclass for test cases concerning SHACL constraint validation. Future versions may add new kinds of validatin test cases, e.g. to validate a single resource only." ; + rdfs:subClassOf dash:TestCase . + +dash:closedByTypes a rdf:Property ; + rdfs:label "closed by types" . + +dash:coExistsWith a rdf:Property ; + rdfs:label "co-exists with" ; + rdfs:comment "Specifies a property that must have a value whenever the property path has a value, and must have no value whenever the property path has no value." ; + rdfs:range rdf:Property . + +dash:hasClass a sh:SPARQLAskValidator ; + rdfs:label "has class" ; + sh:ask """ + ASK { + $value rdf:type/rdfs:subClassOf* $class . + } + """ ; + sh:message "Value does not have class {$class}" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxExclusive a sh:SPARQLAskValidator ; + rdfs:label "has max exclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than (<) the provided ?maxExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value < $maxExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxInclusive a sh:SPARQLAskValidator ; + rdfs:label "has max inclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than or equal to (<=) the provided ?maxInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value <= $maxInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxLength a sh:SPARQLAskValidator ; + rdfs:label "has max length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given maximum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) <= $maxLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinExclusive a sh:SPARQLAskValidator ; + rdfs:label "has min exclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than (>) the provided ?minExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value > $minExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinInclusive a sh:SPARQLAskValidator ; + rdfs:label "has min inclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than or equal to (>=) the provided ?minInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value >= $minInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinLength a sh:SPARQLAskValidator ; + rdfs:label "has min length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given minimum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) >= $minLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasNodeKind a sh:SPARQLAskValidator ; + rdfs:label "has node kind" ; + rdfs:comment "Checks whether a given node (?value) has a given sh:NodeKind (?nodeKind). For example, sh:hasNodeKind(42, sh:Literal) = true." ; + sh:ask """ + ASK { + FILTER ((isIRI($value) && $nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral ) ) || + (isLiteral($value) && $nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral ) ) || + (isBlank($value) && $nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral ) )) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasPattern a sh:SPARQLAskValidator ; + rdfs:label "has pattern" ; + rdfs:comment "Checks whether the string representation of a given node (?value) matches a given regular expression (?pattern). Returns false if the value is a blank node." ; + sh:ask "ASK { FILTER (!isBlank($value) && IF(bound($flags), regex(str($value), $pattern, $flags), regex(str($value), $pattern))) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasRootClass a sh:SPARQLAskValidator ; + rdfs:label "has root class" ; + sh:ask """ASK { + $value rdfs:subClassOf* $rootClass . +}""" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasStem a sh:SPARQLAskValidator ; + rdfs:label "has stem" ; + rdfs:comment "Checks whether a given node is an IRI starting with a given stem." ; + sh:ask "ASK { FILTER (isIRI($value) && STRSTARTS(str($value), $stem)) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasValueIn a rdf:Property ; + rdfs:label "has value in" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be a member of the given list." ; + rdfs:range rdf:List . + +dash:hasValueWithClass a rdf:Property ; + rdfs:label "has value with class" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be an instance of a given class." ; + rdfs:range rdfs:Class . + +dash:indexed a rdf:Property ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:isIn a sh:SPARQLAskValidator ; + rdfs:label "is in" ; + sh:ask """ + ASK { + GRAPH $shapesGraph { + $in (rdf:rest*)/rdf:first $value . + } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isLanguageIn a sh:SPARQLAskValidator ; + rdfs:label "is language in" ; + sh:ask """ + ASK { + BIND (lang($value) AS ?valueLang) . + FILTER EXISTS { + GRAPH $shapesGraph { + $languageIn (rdf:rest*)/rdf:first ?lang . + FILTER (langMatches(?valueLang, ?lang)) + } } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isSubClassOf-subclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) subclass." ; + sh:name "subclass" ; + sh:path dash:subclass . + +dash:isSubClassOf-superclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) superclass." ; + sh:name "superclass" ; + sh:order 1.0 ; + sh:path dash:superclass . + +dash:reifiableBy a rdf:Property ; + rdfs:label "reifiable by" ; + rdfs:comment "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Use dash:None to indicate that no reification should be permitted." ; + rdfs:domain sh:PropertyShape ; + rdfs:range sh:NodeShape . + +dash:rootClass a rdf:Property ; + rdfs:label "root class" . + +dash:singleLine a rdf:Property ; + rdfs:label "single line" ; + rdfs:range xsd:boolean . + +dash:stem a rdf:Property ; + rdfs:label "stem"@en ; + rdfs:comment "Specifies a string value that the IRI of the value nodes must start with."@en ; + rdfs:range xsd:string . + +dash:subSetOf a rdf:Property ; + rdfs:label "sub set of" . + +dash:symmetric a rdf:Property ; + rdfs:label "symmetric" ; + rdfs:comment "True to declare that the associated property path is symmetric." . + +dash:uniqueValueForClass a rdf:Property ; + rdfs:label "unique value for class" . + +default3:ontology a owl:Ontology ; + owl:imports <https://unl.tetras-libre.fr/rdf/schema> . + +<http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> a unl:UW_Lexeme ; + rdfs:label "TRANSEC-NC" ; + unl:has_occurrence default3:occurence_TRANSEC-NC . + +<http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> a unl:UW_Lexeme ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:has_occurrence default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_occurrence default3:occurence_capacity-icl-volume-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> a unl:UW_Lexeme ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:has_occurrence default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_occurrence default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:has_occurrence default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_occurrence default3:occurence_mission-icl-assignment-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_occurrence default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> a unl:UW_Lexeme ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_occurrence default3:occurence_operator-icl-causal-agent-icl-person-- . + +<http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_occurrence default3:occurence_radio-channel-icl-communication-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_occurrence default3:occurence_system-icl-instrumentality-icl-thing-- . + +rdf:object a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:object . + +rdf:predicate a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:predicate . + +rdf:subject a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:subject . + +rdfs:isDefinedBy a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:isDefinedBy, + rdfs:seeAlso . + +sh:SPARQLExecutable dash:abstract true . + +sh:Validator dash:abstract true . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +cts:batch_execution a owl:Class, + sh:NodeShape ; + rdfs:label "batch execution" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:bypass-reification, + cts:complement-composite-class, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-domain-of-relation-property, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:compute-range-of-relation-property, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:define-uw-id, + cts:extend-atom-list-net, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:link-instances-by-relation-property, + cts:link-to-scope-entry, + cts:specify-axis-of-atom-list-net, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:old_add-event a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. + # Object Property + ?newEventObjectPropertyUri a owl:ObjectProperty. + ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. + ?newEventObjectPropertyUri rdfs:label ?verbConcept. + ?newEventObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: entity + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). + # URI (for object property) + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?eventObjectPropertyUri). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_add-state-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. + ?newStatePropertyUri rdfs:label ?statePropertyLabel. + ?newStatePropertyUri sys:from_structure ?req. + # Object Property + ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. + ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. + ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. + ?newStatePropertyObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: state property + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:is_class ?statePropertyClass. + BIND (concat( ?targetOntologyURI, ?statePropertyClass) AS ?c1). + BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). + BIND (uri( ?c1) AS ?statePropertyClassUri). + BIND (uri(?c2) AS ?newStatePropertyUri). + # URI (for object property) + sys:State_Property sys:has_object_property ?statePropertyObjectProperty. + BIND (concat( ?targetOntologyURI, ?statePropertyObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). + BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_compose-agt-verb-obj-as-simple-event a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event +CONSTRUCT { + # Net: Event + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:Event. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:action_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: agt(net1, net2) et obj(net1, net3) + ?uw1 unl:agt ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:event rdfs:label ?eventLabel. + BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compose-aoj-verb-obj-as-simple-state-property a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property +CONSTRUCT { + # Net: State Property + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:State_Property. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:attributive_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: aoj(net1, net2) et obj(net1, net3) + ?uw1 unl:aoj ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for State Property Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:state_property rdfs:label ?statePropertyLabel. + BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compute-domain-range-of-event-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?newEventObjectPropertyUri rdfs:domain ?domainClass. + ?newEventObjectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.332 . + +cts:old_compute-domain-range-of-state-property-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?objectPropertyUri rdfs:domain ?domainClass. + ?objectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:has_object_property ?objectPropertyRef. + BIND (concat( ?targetOntologyURI, ?objectPropertyRef) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +}""" ; + sh:order 0.332 . + +unl:has_occurrence a owl:ObjectProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range unl:UW_Occurrence ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_occurrence_of . + +unl:is_occurrence_of a owl:ObjectProperty ; + rdfs:domain unl:UW_Occurrence ; + rdfs:range unl:UW_Lexeme ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:has_occurrence . + +unl:is_scope_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Scope ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_source_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_superstructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_target_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +dash:PropertyAutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Property auto-complete editor" ; + rdfs:comment "An editor for properties that are either defined as instances of rdf:Property or used as IRI values of sh:path. The component uses auto-complete to find these properties by their rdfs:labels or sh:names." . + +dash:PropertyLabelViewer a dash:SingleViewer ; + rdfs:label "Property label viewer" ; + rdfs:comment "A viewer for properties that renders a hyperlink using the display label or sh:name, allowing users to either navigate to the rdf:Property resource or the property shape definition. Should be used in conjunction with PropertyAutoCompleteEditor." . + +dash:Widget a dash:ShapeClass ; + rdfs:label "Widget" ; + dash:abstract true ; + rdfs:comment "Base class of user interface components that can be used to display or edit value nodes." ; + rdfs:subClassOf rdfs:Resource . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_system-icl-instrumentality-icl-thing-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person-- a unl:ben ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- a unl:obj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC a unl:mod ; + unl:has_source default3:occurence_capacity-icl-volume-icl-thing-- ; + unl:has_target default3:occurence_TRANSEC-NC . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- a unl:agt ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:man ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- a unl:res ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:has_target default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:operator-icl-causal-agent-icl-person--_mod_scope-01 a unl:mod ; + unl:has_source default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_target default3:scope_01 . + +<http://unsel.rdf-unl.org/uw_lexeme#document> a unl:UNL_Document ; + unl:is_superstructure_of default3:sentence_0 . + +rdfs:seeAlso a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:seeAlso . + +sh:Function dash:abstract true . + +sh:Shape dash:abstract true . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +cts:append-domain-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible domain, actor to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_source ?sourceObject. + ?net1 net:has_possible_domain ?domainClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): actor of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?sourceObject. + # condition: agt(net1, net2) + ?uw1 ( unl:agt | unl:aoj ) ?uw2. + # Possible Domain + { ?sourceObject net:has_concept ?domainClass. } + UNION + { ?sourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_concept ?domainClass. } +}""" ; + sh:order 2.42 . + +cts:append-range-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible range, target to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_target ?targetObject. + ?net1 net:has_possible_range ?rangeClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): target of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?targetObject. + # condition: agt(net1, net2) + ?uw1 (unl:obj|unl:res) ?uw2. + # Possible Domain + { ?targetObject net:has_concept ?rangeClass. } + UNION + { ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. } +}""" ; + sh:order 2.42 . + +cts:bypass-reification a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Bypass reification (extension of UNL relations) +CONSTRUCT { + ?node1 ?unlRel ?node2. +} +WHERE { + ?rel unl:has_source ?node1. + ?rel unl:has_target ?node2. + ?rel a ?unlRel. +} """ ; + sh:order 1.1 . + +cts:compose-atom-with-list-by-mod-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and a list net (with distinct item classes) +CONSTRUCT { + # Object: Composite + ?newObject a net:Object. + ?newObject net:objectType net:composite. + ?newObject net:has_node ?uw1, ?uw3. + ?newObject net:has_mother_class ?net1Mother. + ?newObject net:has_parent_class ?net1Class. + ?newObject net:has_class ?subConcept. + ?newObject net:has_concept ?subConcept. + ?newObject net:has_feature ?net2Item. + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?newObject. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_mother_class ?net1Mother. + ?net1Object net:has_parent_class ?net1ParentClass. + ?net1Object net:has_class ?net1Class. + ?net1Object net:has_concept ?net1Concept. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:type ?listSubType. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass != ?net2ParentClass ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + BIND (concat( ?net2Concept, '_', ?net1Concept) AS ?subConcept). + # URI (for Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?objectRef, ?compositeLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.32 . + +cts:compose-atom-with-list-by-mod-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and an list net (with same item classes) +CONSTRUCT { + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?net2Item. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_parent_class ?net1ParentClass. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass = ?net2ParentClass ). + # Label: Id, subEntity + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.33 . + +cts:compute-class-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-class-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_mother_class_uri ?motherClassUri. + ?object net:has_parent_class_uri ?parentClassUri. + ?object net:has_class_uri ?objectClassUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_mother_class ?motherClass. + ?object net:has_parent_class ?parentClass. + ?object net:has_class ?objectClass. + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newClassRef ?newClassRef. + BIND (str(?motherClass) AS ?s1). + # TODO: BIND (concat( ?targetOntologyURI, ?motherClass) AS ?s1). + BIND (concat(?targetOntologyURI, ?parentClass) AS ?s2). + BIND (concat(?targetOntologyURI, ?newClassRef, ?objectClass) AS ?s3). + BIND (uri( ?s1) AS ?motherClassUri). + BIND (uri( ?s2) AS ?parentClassUri). + BIND (uri(?s3) AS ?objectClassUri). +} +VALUES ?objectType { + net:atom + net:composite +}""" ; + sh:order 2.91 . + +cts:compute-instance-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-instance-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_instance_uri ?objectInstanceUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:has_parent_class ?parentClass. + ?object net:has_instance ?objectInstance. + # URI (for classes and instance) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat( ?targetOntologyURI, ?parentClass) AS ?s1). + BIND (concat(?s1, '#', ?objectInstance) AS ?s2). + BIND (uri(?s2) AS ?objectInstanceUri). +}""" ; + sh:order 2.92 . + +cts:compute-property-uri-of-relation-object a sh:SPARQLRule ; + rdfs:label "compute-property-uri-of-relation-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_property_uri ?objectPropertyUri. +} +WHERE { + # Object of type Relation + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_parent_property ?parentProperty. + ?object net:has_concept ?objectConcept. + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newPropertyRef ?newPropertyRef. + ?parentProperty sys:has_reference ?relationReference. + BIND (concat( ?targetOntologyURI, ?newPropertyRef, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?objectConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +} +VALUES ?objectType { + net:relation +}""" ; + sh:order 2.91 . + +cts:create-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create Atom Net (entity) +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:atom. + ?newObject net:has_node ?uw1. + ?newObject net:has_mother_class ?atomMother. + ?newObject net:has_parent_class ?atomClass. + ?newObject net:has_class ?concept1. + ?newObject net:has_concept ?concept1. + # Net + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf ?atomMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_atom ?newObject. +} +WHERE { + # Atom Description (from System Ontology) + ?atomMother rdfs:subClassOf* sys:Structure. + ?atomMother sys:is_class ?atomClass. + ?atomMother seedSchema:has_uw-regex-seed ?restriction. + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Filter on label + ?uw1 rdfs:label ?uw1Label. + FILTER ( regex(str(?uw1Label),str(?restriction)) ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?concept1). + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?objectRef, ?atomLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Atom Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + BIND (concat( ?netURI, ?classReference, '-', ?atomClass, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.11 . + +cts:create-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create relation net +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:relation. + ?newObject net:has_node ?uw1. + ?newObject net:has_parent_property ?relationMother. + ?newObject net:has_concept ?verbConcept. + # create: Relation Net + ?newNet a net:Instance. + ?newNet net:type net:relation. + ?newNet net:relationOf ?relationMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_relation ?newObject. +} +WHERE { + # Relation Description (from System Ontology) + ?targetProperty rdfs:subPropertyOf* sys:Relation. + ?targetProperty sys:has_mother_property ?relationMother. + ?targetProperty sys:has_reference ?relationReference. + # -- old --- ?targetProperty sys:has_restriction_on_class ?classRestriction. + ?targetProperty seedSchema:has_class-restriction-seed ?classRestriction. + # Atom Net (net1): restricted net according to its atom category (atomOf) + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?classRestriction. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Verb Actor + ?net1 net:has_atom ?verbObject. + ?verbObject net:has_mother_class ?verbMother. + ?verbObject net:has_parent_class ?verbParentClass. + ?verbObject net:has_concept ?verbConcept. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:relation rdfs:label ?relationLabel. + BIND (concat( ?netURI, ?objectRef, ?relationLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Property sys:has_reference ?propertyReference. + BIND (concat( ?netURI, ?propertyReference, '-', ?relationReference, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.41 . + +cts:create-unary-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create an unary Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:unary_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw0 unl:mod ?uw1. + FILTER NOT EXISTS { ?uw1 (unl:and|unl:or) ?uw2 } + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?classReference, '-', ?listLabel, '-', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:define-uw-id a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Define an ID for each UW (occurrence) +CONSTRUCT { + ?uw1 unl:has_id ?uwId. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Label(s) / URI + ?req unl:has_id ?reqId. + ?uw1 rdfs:label ?uw1Label. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?rawConcept). + BIND (REPLACE(?rawConcept, " ", "-") AS ?concept1) + BIND (strafter(str(?uw1), "---") AS ?numOcc). + BIND (concat( ?reqId, '_', ?concept1, ?numOcc) AS ?uwId). +} """ ; + sh:order 1.3 . + +cts:extend-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Extend an Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:has_node ?uw2. + ?net1 net:has_item ?object2. +} +WHERE { + # Net1: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # extension: disjunction of UW + ?uw1 (unl:or|unl:and) ?uw2. + # Net2: Atom + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?object2. +}""" ; + sh:order 2.22 . + +cts:init-conjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a conjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:conjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:and ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:init-disjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a disjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:disjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:or ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:instantiate-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate atom net +CONSTRUCT { + # Object: entity + ?atomObject1 net:has_instance ?instanceName. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?atomObject1. + # condition: agt/obj(uw0, uw1) + ?uw0 (unl:agt | unl:obj | unl:aoj) ?uw1. + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label: id, name + ?uw1 unl:has_id ?uw1Id. + BIND (?uw1Id AS ?instanceName). +}""" ; + sh:order 2.12 . + +cts:instantiate-composite-in-list-by-extension-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate composite in list by extension of instances from parent element +CONSTRUCT { + ?itemObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?itemObject. + # Filter + FILTER NOT EXISTS { ?itemObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.341 . + +cts:instantiate-composite-in-list-by-extension-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate entities in class list by extension of instances (2) +CONSTRUCT { + ?net2SubObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?net1SubObject. + ?net1SubObject net:has_concept ?sameEntity. + # net2: Another List + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_parent ?net2MainObject. + ?net2MainObject net:has_concept ?sameEntity. + ?net2 net:has_item ?net2SubObject. + # Filter + FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.342 . + +cts:link-to-scope-entry a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link UNL relation to scope entry +# (by connecting the source node of the scope to the entry node of the scope) +CONSTRUCT { + ?node1Occ ?unlRel ?node2Occ. +} +WHERE { + ?scope rdf:type unl:UNL_Scope. + ?node1Occ unl:is_source_of ?rel. + ?rel unl:has_target ?scope. + ?scope unl:is_scope_of ?scopeRel. + ?scopeRel unl:has_source ?node2Occ. + ?node2Occ unl:has_attribute ".@entry". + ?rel a ?unlRel. +} """ ; + sh:order 1.2 . + +cts:old_link-classes-by-relation-property a sh:SPARQLRule ; + rdfs:label "link-classes-by-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link two classes by relation property (according existence of domain and range) +CONSTRUCT { + # relation between domain/range classes + ?domainClassUri ?propertyUri ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?propertyUri rdfs:domain ?domainClass. + ?propertyUri rdfs:range ?rangeClass. + BIND (uri( ?domainClass) AS ?domainClassUri). + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 0.33 . + +cts:specify-axis-of-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Specify axis of Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:listBy ?unlRel. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Net: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_node ?uw1. + # selection: target UW of modifier (mod) + ?uw0 ?unlRel ?uw1. + FILTER NOT EXISTS { ?net1 net:has_node ?uw0 }. +}""" ; + sh:order 2.23 . + +cts:update-batch-execution-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:batch_execution sh:rule ?rule. +} +WHERE { + ?nodeShapes sh:rule ?rule. +} +VALUES ?nodeShapes { + cts:preprocessing + cts:net_extension + cts:generation +}""" ; + sh:order 1.09 . + +cts:update-generation-class-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:class_generation sh:rule ?rule. +} +WHERE { + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.1") ). } + UNION + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.2") ). } +}""" ; + sh:order 1.031 . + +cts:update-generation-relation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:relation_generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.3") ). +}""" ; + sh:order 1.032 . + +cts:update-generation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.") ). +}""" ; + sh:order 1.03 . + +cts:update-net-extension-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:net_extension sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"2.") ). +}""" ; + sh:order 1.02 . + +cts:update-preprocessing-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:preprocessing sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"1.") ). +}""" ; + sh:order 1.01 . + +<https://unl.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:imports <http://www.w3.org/2008/05/skos-xl> ; + owl:versionIRI unl:0.1 . + +<https://unl.tetras-libre.fr/rdf/schema#@indef> a owl:Class ; + rdfs:label "indef" ; + rdfs:subClassOf unl:specification ; + skos:definition "indefinite" . + +unl:UNLKB_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:UNL_Graph_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:animacy a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:degree a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:dur a owl:Class, + owl:ObjectProperty ; + rdfs:label "dur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "duration or co-occurrence"@en ; + skos:definition "The duration of an entity or event."@en ; + skos:example """John worked for five hours = dur(worked;five hours) +John worked hard the whole summer = dur(worked;the whole summer) +John completed the task in ten minutes = dur(completed;ten minutes) +John was reading while Peter was cooking = dur(John was reading;Peter was cooking)"""@en . + +unl:figure_of_speech a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:ins a owl:Class, + owl:ObjectProperty ; + rdfs:label "ins" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "instrument or method"@en ; + skos:definition "An inanimate entity or method that an agent uses to implement an event. It is the stimulus or immediate physical cause of an event."@en ; + skos:example """The cook cut the cake with a knife = ins(cut;knife) +She used a crayon to scribble a note = ins(used;crayon) +That window was broken by a hammer = ins(broken;hammer) +He solved the problem with a new algorithm = ins(solved;a new algorithm) +He solved the problem using an algorithm = ins(solved;using an algorithm) +He used Mathematics to solve the problem = ins(used;Mathematics)"""@en . + +unl:per a owl:Class, + owl:ObjectProperty ; + rdfs:label "per" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "proportion, rate, distribution, measure or basis for a comparison"@en ; + skos:definition "Used to indicate a measure or quantification of an event."@en ; + skos:example """The course was split in two parts = per(split;in two parts) +twice a week = per(twice;week) +The new coat costs $70 = per(cost;$70) +John is more beautiful than Peter = per(beautiful;Peter) +John is as intelligent as Mary = per(intelligent;Mary) +John is the most intelligent of us = per(intelligent;we)"""@en . + +unl:relative_tense a owl:Class ; + rdfs:subClassOf unl:time . + +unl:superlative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:time a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:unlAnnotationProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf unl:unlProperty . + +unl:unlDatatypeProperty a owl:DatatypeProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:Action a dash:ShapeClass ; + rdfs:label "Action" ; + dash:abstract true ; + rdfs:comment "An executable command triggered by an agent, backed by a Script implementation. Actions may get deactivated using sh:deactivated." ; + rdfs:subClassOf dash:Script, + sh:Parameterizable . + +dash:Editor a dash:ShapeClass ; + rdfs:label "Editor" ; + dash:abstract true ; + rdfs:comment "The class of widgets for editing value nodes." ; + rdfs:subClassOf dash:Widget . + +dash:ResourceAction a dash:ShapeClass ; + rdfs:label "Resource action" ; + dash:abstract true ; + rdfs:comment "An Action that can be executed for a selected resource. Such Actions show up in context menus once they have been assigned a sh:group." ; + rdfs:subClassOf dash:Action . + +dash:Viewer a dash:ShapeClass ; + rdfs:label "Viewer" ; + dash:abstract true ; + rdfs:comment "The class of widgets for viewing value nodes." ; + rdfs:subClassOf dash:Widget . + +default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- a unl:or ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_CDC-icl-object-icl-place-icl-thing--- ; + unl:has_target default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- a unl:mod ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- ; + unl:has_target default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +rdf:first a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:subPropertyOf rdf:first . + +sh:Parameterizable dash:abstract true . + +sh:Target dash:abstract true . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +unl:Universal_Word a owl:Class ; + rdfs:label "Universal Word" ; + rdfs:comment """For details abour UWs, see : +http://www.unlweb.net/wiki/Universal_Words + +Universal Words, or simply UW's, are the words of UNL, and correspond to nodes - to be interlinked by Universal Relations and specified by Universal Attributes - in a UNL graph.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:comparative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:gender a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:information_structure a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:nominal_attributes a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:person a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:place a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:polarity a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:position a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlProperty a rdf:Property . + +default3:occurence_ARS-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_ARS" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_TRANSEC-NC a unl:UW_Occurrence ; + rdfs:label "TRANSEC-NC" ; + unl:has_attribute ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_TRANSEC-NC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC . + +default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- a unl:UW_Occurrence ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:aoj default3:occurence_mission-icl-assignment-icl-thing-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_include" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> ; + unl:is_source_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_attribute ".@entry", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operational_manager" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> ; + unl:is_source_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:mod default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +default3:occurence_radio-channel-icl-communication-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_radio_channel" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_system-icl-instrumentality-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_system" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +cts:add-conjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-conjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:intersectionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:and ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:add-disjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-disjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:unionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:or ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:complement-composite-class a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Complement composite classes with feature relation +CONSTRUCT { + # Complement with feature relation + ?compositeClassUri sys:has_feature ?featureUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + # -- Item + ?net1 net:has_item ?itemObject. + ?itemObject net:has_class_uri ?compositeClassUri. + ?itemObject net:has_feature ?featureObject. + # -- Feature + ?featureObject a net:Object. + ?featureObject net:has_class_uri ?featureUri. +}""" ; + sh:order 3.22 . + +cts:generate-atom-class a sh:SPARQLRule ; + rdfs:label "add-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Atom Class in Target Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?atomConcept. + ?newClassUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_parent_class_uri ?parentUri. + ?atomObject1 net:has_class_uri ?newClassUri. + ?atomObject1 net:has_concept ?atomConcept. + # Filter: atom not present in a composite list + FILTER NOT EXISTS { + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_item ?atomObject1. + } +}""" ; + sh:order 3.1 . + +cts:generate-atom-instance a sh:SPARQLRule ; + rdfs:label "add-entity" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate atom instance in System Ontology +CONSTRUCT { + # Instantiation + ?newInstanceUri a ?classUri. + ?newInstanceUri rdfs:label ?atomInstance. + ?newInstanceUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_class_uri ?classUri. + ?atomObject1 net:has_instance ?atomInstance. + ?atomObject1 net:has_instance_uri ?newInstanceUri. + # Filter: entity not present in a class list + FILTER NOT EXISTS { ?net2 net:has_subClass ?atomConcept} +}""" ; + sh:order 3.1 . + +cts:generate-composite-class-from-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Composite Class in Ontology (from Composite List net) +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?compositeConcept. + ?newClassUri sys:from_structure ?req. + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. + ?instanceUri sys:from_structure ?req. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?net1 net:has_item ?compositeObject. + ?compositeObject net:has_class_uri ?newClassUri. + ?compositeObject net:has_concept ?compositeConcept. +}""" ; + sh:order 3.21 . + +unl:lexical_category a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:voice a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +default3:occurence_CDC-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_CDC" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> ; + unl:is_source_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:or default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- a unl:UW_Occurrence ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:aoj default3:occurence_system-icl-instrumentality-icl-thing-- ; + unl:ben default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_attribute ".@entry", + ".@obligation", + ".@present" ; + unl:has_id "SRSA-IP_STB_PHON_00100_allow" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> ; + unl:is_source_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:occurence_capacity-icl-volume-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_capacity" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> ; + unl:is_source_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:mod default3:occurence_TRANSEC-NC . + +default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:UW_Occurrence ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_id "SRSA-IP_STB_PHON_00100_define" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> ; + unl:is_source_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:obj default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:scope_01 a unl:UNL_Scope ; + rdfs:label "01" ; + unl:is_scope_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing---, + default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 . + +rdf:rest a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:range rdf:List ; + rdfs:subPropertyOf rdf:rest . + +sh:AbstractResult dash:abstract true . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +<https://unl.tetras-libre.fr/rdf/schema#@pl> a owl:Class ; + rdfs:label "pl" ; + rdfs:subClassOf unl:quantification ; + skos:definition "plural" . + +unl:absolute_tense a owl:Class ; + rdfs:subClassOf unl:time . + +default3:occurence_mission-icl-assignment-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_mission" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +cts:compute-domain-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-domain-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Domain of Relation Property +CONSTRUCT { + # update Relation Property: add domain + ?newPropertyUri rdfs:domain ?domainClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1. + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + BIND (uri( ?domainClass) AS ?domainClassUri). +}""" ; + sh:order 3.32 . + +cts:compute-range-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-range-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Range of Relation Property +CONSTRUCT { + # update Relation Property: add range + ?newPropertyUri rdfs:range ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 3.32 . + +cts:generate-event-class a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Event Class in Target Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_concept ?sourceConcept. + # -- Target Object + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_concept ?targetConcept. + # Label: event + BIND (concat(?sourceConcept, '-', ?relationConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). +}""" ; + sh:order 3.31 . + +cts:generate-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Relation Property in Target Ontology +CONSTRUCT { + # update: Relation Property + ?newPropertyUri a owl:ObjectProperty. + ?newPropertyUri rdfs:subPropertyOf ?parentProperty. + ?newPropertyUri rdfs:label ?relationConcept. + ?newPropertyUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. +}""" ; + sh:order 3.31 . + +cts:link-instances-by-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +CONSTRUCT { + ?sourceInstanceUri ?newPropertyUri ?targetInstanceUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- Target Object + ?net1 net:has_target ?targetObject. + ?targetObject net:has_instance_uri ?targetInstanceUri. +}""" ; + sh:order 3.33 . + +unl:positive a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:syntactic_structures a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:tim a owl:Class, + owl:ObjectProperty ; + rdfs:label "tim" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "time"@en ; + skos:definition "The temporal placement of an entity or event."@en ; + skos:example """The whistle will sound at noon = tim(sound;noon) +John came yesterday = tim(came;yesterday)"""@en . + +default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- a unl:UW_Occurrence ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:agt default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_id "SRSA-IP_STB_PHON_00100_create" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> ; + unl:is_source_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:man default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:res default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:occurence_operator-icl-causal-agent-icl-person-- a unl:UW_Occurrence ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_attribute ".@indef", + ".@male", + ".@singular" ; + unl:has_id "SRSA-IP_STB_PHON_00100_operator" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> ; + unl:is_source_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- ; + unl:mod default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:scope_01 . + +unl:conventions a owl:Class ; + rdfs:subClassOf unl:syntactic_structures . + +unl:social_deixis a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:Script a dash:ShapeClass ; + rdfs:label "Script" ; + rdfs:comment "An executable unit implemented in one or more languages such as JavaScript." ; + rdfs:subClassOf rdfs:Resource . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +unl:other a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:plc a owl:Class, + owl:ObjectProperty ; + rdfs:label "plc" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "place"@en ; + skos:definition "The location or spatial orientation of an entity or event."@en ; + skos:example """John works here = plc(work;here) +John works in NY = plc(work;NY) +John works in the office = plc(work;office) +John is in the office = plc(John;office) +a night in Paris = plc(night;Paris)"""@en . + +unl:register a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:specification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:UNL_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Structure . + +dash:TestCase a dash:ShapeClass ; + rdfs:label "Test case" ; + dash:abstract true ; + rdfs:comment "A test case to verify that a (SHACL-based) feature works as expected." ; + rdfs:subClassOf rdfs:Resource . + +<https://unl.tetras-libre.fr/rdf/schema#@def> a owl:Class ; + rdfs:label "def" ; + rdfs:subClassOf unl:specification ; + skos:definition "definite" . + +unl:direction a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:SingleViewer a dash:ShapeClass ; + rdfs:label "Single viewer" ; + rdfs:comment "A viewer for a single value." ; + rdfs:subClassOf dash:Viewer . + +unl:Schemes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:emotions a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:ConstraintReificationShape a sh:NodeShape ; + rdfs:label "Constraint reification shape" ; + rdfs:comment "Can be used to attach sh:severity and sh:messages to individual constraints using reification." ; + sh:property dash:ConstraintReificationShape-message, + dash:ConstraintReificationShape-severity . + +() a rdf:List, + rdfs:Resource . + +cts:Transduction_Schemes a owl:Class, + sh:NodeShape ; + rdfs:label "Transduction Schemes" ; + rdfs:subClassOf owl:Thing . + +unl:UNL_Structure a owl:Class ; + rdfs:label "UNL Structure" ; + rdfs:comment "Sentences expressed in UNL can be organized in paragraphs and documents" . + +unl:quantification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:SingleEditor a dash:ShapeClass ; + rdfs:label "Single editor" ; + rdfs:comment "An editor for individual value nodes." ; + rdfs:subClassOf dash:Editor . + +default3:sentence_0 a unl:UNL_Sentence ; + rdfs:label """The system shall allow an operator (operational manager of the CDC or ARS) to create a mission with a radio channel by defining the following parameters: +- radio channel wording, +- role associated with the radio channel, +- work area, +- frequency, +- TRANSEC capacity, +- for each center lane: +o name of the radio centre, +o order number of the radio centre, +- mission wording"""@en, + """Le système doit permettre à un opérateur (gestionnaire opérationnel du CDC ou de l'ARS) de créer une mission comportant une voie radio en définissant les paramètres suivants: +• libellé de la voie radio, +• rôle associé à la voie radio, +• zone de travail, +• fréquence, +• capacité TRANSEC, +• pour chaque voie centre: +o libellé du centre radio, +o numéro d'ordre du centre radio, +• libellé de la mission"""@fr ; + skos:altLabel """[S:1] +aoj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,system(icl>instrumentality(icl>thing)).@def.@singular) +ben(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +mod(operator(icl>causal_agent(icl>person)).@indef.@male.@singular,:01.@parenthesis) +mod:01(operational_manager(equ>director,icl>administrator(icl>thing)).@entry.@male.@singular,CDC(icl>object(icl>place(icl>thing))).@def.@singular) +or:01(CDC(icl>object(icl>place(icl>thing))).@def.@singular,ARS(icl>object(icl>place(icl>thing))).@def.@singular) +obj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,create(agt>thing,icl>make(icl>do),obj>uw)) +agt(create(agt>thing,icl>make(icl>do),obj>uw),operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +res(create(agt>thing,icl>make(icl>do),obj>uw),mission(icl>assignment(icl>thing)).@indef.@singular) +aoj(include(aoj>thing,icl>contain(icl>be),obj>thing),mission(icl>assignment(icl>thing)).@indef.@singular) +obj(include(aoj>thing,icl>contain(icl>be),obj>thing),radio_channel(icl>communication(icl>thing)).@indef.@singular) +man(create(agt>thing,icl>make(icl>do),obj>uw),define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)) +obj(define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing),capacity(icl>volume(icl>thing)).@def.@singular) +mod(capacity(icl>volume(icl>thing)).@def.@singular,TRANSEC-NC.@singular) + +[/S]""" ; + unl:has_id "SRSA-IP_STB_PHON_00100" ; + unl:has_index <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_substructure_of <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_superstructure_of default3:occurence_ARS-icl-object-icl-place-icl-thing---, + default3:occurence_CDC-icl-object-icl-place-icl-thing---, + default3:occurence_TRANSEC-NC, + default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-, + default3:occurence_capacity-icl-volume-icl-thing--, + default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw-, + default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing-, + default3:occurence_mission-icl-assignment-icl-thing--, + default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:occurence_operator-icl-causal-agent-icl-person--, + default3:occurence_radio-channel-icl-communication-icl-thing--, + default3:occurence_system-icl-instrumentality-icl-thing--, + default3:scope_01 . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +unl:aspect a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Tropes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:location a owl:Class ; + rdfs:subClassOf unl:place . + +unl:Universal_Attribute a rdfs:Datatype, + owl:Class ; + rdfs:label "Universal Attribute" ; + rdfs:comment """More informations about Universal Attributes here : +http://www.unlweb.net/wiki/Universal_Attributes + +Classes in this hierarchy are informative. +Universal attributes must be expressed as strings (label of the attribute) with datatype :Universal_Attribute. + +Universal Attributes are arcs linking a node to itself. In opposition to Universal Relations, they correspond to one-place predicates, i.e., functions that take a single argument. In UNL, attributes have been normally used to represent information conveyed by natural language grammatical categories (such as tense, mood, aspect, number, etc). The set of attributes, which is claimed to be universal, is defined in the UNL Specs and is not open to frequent additions.""" ; + rdfs:subClassOf unl:UNL_Structure ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( ".@1" ".@2" ".@3" ".@ability" ".@about" ".@above" ".@according_to" ".@across" ".@active" ".@adjective" ".@adverb" ".@advice" ".@after" ".@again" ".@against" ".@agreement" ".@all" ".@alliteration" ".@almost" ".@along" ".@also" ".@although" ".@among" ".@anacoluthon" ".@anadiplosis" ".@anaphora" ".@anastrophe" ".@and" ".@anger" ".@angle_bracket" ".@antanaclasis" ".@anterior" ".@anthropomorphism" ".@anticlimax" ".@antimetabole" ".@antiphrasis" ".@antithesis" ".@antonomasia" ".@any" ".@apposition" ".@archaic" ".@around" ".@as" ".@as.@if" ".@as_far_as" ".@as_of" ".@as_per" ".@as_regards" ".@as_well_as" ".@assertion" ".@assonance" ".@assumption" ".@asyndeton" ".@at" ".@attention" ".@back" ".@barring" ".@because" ".@because_of" ".@before" ".@behind" ".@belief" ".@below" ".@beside" ".@besides" ".@between" ".@beyond" ".@both" ".@bottom" ".@brace" ".@brachylogia" ".@but" ".@by" ".@by_means_of" ".@catachresis" ".@causative" ".@certain" ".@chiasmus" ".@circa" ".@climax" ".@clockwise" ".@colloquial" ".@command" ".@comment" ".@concerning" ".@conclusion" ".@condition" ".@confirmation" ".@consent" ".@consequence" ".@consonance" ".@contact" ".@contentment" ".@continuative" ".@conviction" ".@decision" ".@deduction" ".@def" ".@desire" ".@despite" ".@determination" ".@dialect" ".@disagreement" ".@discontentment" ".@dissent" ".@distal" ".@double_negative" ".@double_parenthesis" ".@double_quote" ".@doubt" ".@down" ".@dual" ".@due_to" ".@during" ".@dysphemism" ".@each" ".@either" ".@ellipsis" ".@emphasis" ".@enough" ".@entire" ".@entry" ".@epanalepsis" ".@epanorthosis" ".@equal" ".@equivalent" ".@euphemism" ".@even" ".@even.@if" ".@except" ".@except.@if" ".@except_for" ".@exclamation" ".@excluding" ".@exhortation" ".@expectation" ".@experiential" ".@extra" ".@failing" ".@familiar" ".@far" ".@fear" ".@female" ".@focus" ".@following" ".@for" ".@from" ".@front" ".@future" ".@generic" ".@given" ".@habitual" ".@half" ".@hesitation" ".@hope" ".@hyperbole" ".@hypothesis" ".@if" ".@if.@only" ".@imperfective" ".@in" ".@in_accordance_with" ".@in_addition_to" ".@in_case" ".@in_case_of" ".@in_front_of" ".@in_place_of" ".@in_spite_of" ".@inceptive" ".@inchoative" ".@including" ".@indef" ".@inferior" ".@inside" ".@instead_of" ".@intention" ".@interrogation" ".@intimate" ".@invitation" ".@irony" ".@iterative" ".@jargon" ".@judgement" ".@least" ".@left" ".@less" ".@like" ".@literary" ".@majority" ".@male" ".@maybe" ".@medial" ".@metaphor" ".@metonymy" ".@minority" ".@minus" ".@more" ".@most" ".@multal" ".@narrative" ".@near" ".@near_to" ".@necessity" ".@neither" ".@neutral" ".@no" ".@not" ".@notwithstanding" ".@noun" ".@obligation" ".@of" ".@off" ".@on" ".@on_account_of" ".@on_behalf_of" ".@on_top_of" ".@only" ".@onomatopoeia" ".@opinion" ".@opposite" ".@or" ".@ordinal" ".@other" ".@outside" ".@over" ".@owing_to" ".@own" ".@oxymoron" ".@pace" ".@pain" ".@paradox" ".@parallelism" ".@parenthesis" ".@paronomasia" ".@part" ".@passive" ".@past" ".@paucal" ".@pejorative" ".@per" ".@perfect" ".@perfective" ".@periphrasis" ".@permission" ".@permissive" ".@persistent" ".@person" ".@pl" ".@pleonasm" ".@plus" ".@polite" ".@polyptoton" ".@polysyndeton" ".@possibility" ".@posterior" ".@prediction" ".@present" ".@presumption" ".@prior_to" ".@probability" ".@progressive" ".@prohibition" ".@promise" ".@prospective" ".@proximal" ".@pursuant_to" ".@qua" ".@quadrual" ".@recent" ".@reciprocal" ".@reflexive" ".@regarding" ".@regardless_of" ".@regret" ".@relative" ".@relief" ".@remote" ".@repetition" ".@request" ".@result" ".@reverential" ".@right" ".@round" ".@same" ".@save" ".@side" ".@since" ".@single_quote" ".@singular" ".@slang" ".@so" ".@speculation" ".@speech" ".@square_bracket" ".@subsequent_to" ".@such" ".@suggestion" ".@superior" ".@surprise" ".@symploce" ".@synecdoche" ".@synesthesia" ".@taboo" ".@terminative" ".@than" ".@thanks_to" ".@that_of" ".@thing" ".@threat" ".@through" ".@throughout" ".@times" ".@title" ".@to" ".@top" ".@topic" ".@towards" ".@trial" ".@tuple" ".@under" ".@unit" ".@unless" ".@unlike" ".@until" ".@up" ".@upon" ".@verb" ".@versus" ".@vocative" ".@warning" ".@weariness" ".@wh" ".@with" ".@with_regard_to" ".@with_respect_to" ".@within" ".@without" ".@worth" ".@yes" ".@zoomorphism" ) ] . + +dash:ShapeClass a dash:ShapeClass ; + rdfs:label "Shape class" ; + dash:hidden true ; + rdfs:comment "A class that is also a node shape. This class can be used as rdf:type instead of the combination of rdfs:Class and sh:NodeShape." ; + rdfs:subClassOf rdfs:Class, + sh:NodeShape . + +dash:DASHJSLibrary a sh:JSLibrary ; + rdfs:label "DASH JavaScript library" ; + sh:jsLibrary dash:RDFQueryJSLibrary ; + sh:jsLibraryURL "http://datashapes.org/js/dash.js"^^xsd:anyURI . + +sh:SPARQLRule rdfs:subClassOf owl:Thing . + +unl:modality a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +<http://datashapes.org/dash> a owl:Ontology ; + rdfs:label "DASH Data Shapes Vocabulary" ; + rdfs:comment "DASH is a SHACL library for frequently needed features and design patterns. Almost all features in this library are 100% standards compliant and will work on any engine that fully supports SHACL." ; + owl:imports <http://topbraid.org/tosh>, + sh: ; + sh:declare [ sh:namespace "http://datashapes.org/dash#"^^xsd:anyURI ; + sh:prefix "dash" ], + [ sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; + sh:prefix "dcterms" ], + [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI ; + sh:prefix "xsd" ], + [ sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI ; + sh:prefix "owl" ], + [ sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI ; + sh:prefix "skos" ] . + +unl:manner a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Universal_Relation a owl:Class, + owl:ObjectProperty ; + rdfs:label "Universal Relation" ; + rdfs:comment """For detailled specifications about UNL Universal Relations, see : +http://www.unlweb.net/wiki/Universal_Relations + +Universal Relations, formerly known as "links", are labelled arcs connecting a node to another node in a UNL graph. They correspond to two-place semantic predicates holding between two Universal Words. In UNL, universal relations have been normally used to represent semantic cases or thematic roles (such as agent, object, instrument, etc.) between UWs. The repertoire of universal relations is defined in the UNL Specs and it is not open to frequent additions. + +Universal Relations are organized in a hierarchy where lower nodes subsume upper nodes. The topmost level is the relation "rel", which simply indicates that there is a semantic relation between two elements. + +Universal Relations as Object Properties are used only in UNL Knowledge Bases. In UNL graphs, you must use the reified versions of those properties in order to specify the scopes (and not only the sources and targets).""" ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:UNL_Node ; + rdfs:subClassOf unl:UNL_Structure ; + rdfs:subPropertyOf skos:semanticRelation, + unl:unlObjectProperty ; + skos:altLabel "universal relation" ; + skos:definition "Simply indicates that there is a semantic relation (unspecified) between two elements. Use the sub-properties to specify a semantic relation." . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/DefaultTargetId-20230123/DefaultTargetId.ttl b/output/DefaultTargetId-20230123/DefaultTargetId.ttl new file mode 100644 index 0000000000000000000000000000000000000000..a6b715764c7d9247204c197781051882a107c43e --- /dev/null +++ b/output/DefaultTargetId-20230123/DefaultTargetId.ttl @@ -0,0 +1,6991 @@ +@base <https://tenet.tetras-libre.fr/working/DefaultTargetId> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix cts: <https://tenet.tetras-libre.fr/transduction-schemes#> . +@prefix dash: <http://datashapes.org/dash#> . +@prefix default3: <http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100/current/sentence_0#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix skos: <http://www.w3.org/2004/02/skos/core#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix tosh: <http://topbraid.org/tosh#> . +@prefix unl: <https://unl.tetras-libre.fr/rdf/schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dash:ExecutionPlatform a rdfs:Class ; + rdfs:label "Execution platform" ; + rdfs:comment "An platform (such as TopBraid) that may have features needed to execute, for example, SPARQL queries." ; + rdfs:subClassOf rdfs:Resource . + +dash:ExploreAction a rdfs:Class ; + rdfs:label "Explore action" ; + rdfs:comment "An action typically showing up in an Explore section of a selected resource. Cannot make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:FailureResult a rdfs:Class ; + rdfs:label "Failure result" ; + rdfs:comment "A result representing a validation failure such as an unsupported recursion." ; + rdfs:subClassOf sh:AbstractResult . + +dash:FailureTestCaseResult a rdfs:Class ; + rdfs:label "Failure test case result" ; + rdfs:comment "Represents a failure of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:GraphUpdate a rdfs:Class ; + rdfs:label "Graph update" ; + rdfs:comment "A suggestion consisting of added and/or deleted triples, represented as rdf:Statements via dash:addedTriple and dash:deletedTriple." ; + rdfs:subClassOf dash:Suggestion . + +dash:PropertyRole a rdfs:Class, + sh:NodeShape ; + rdfs:label "Property role" ; + rdfs:comment "The class of roles that a property (shape) may take for its focus nodes." ; + rdfs:subClassOf rdfs:Resource . + +dash:SPARQLConstructTemplate a rdfs:Class ; + rdfs:label "SPARQL CONSTRUCT template" ; + rdfs:comment "Encapsulates one or more SPARQL CONSTRUCT queries that can be parameterized. Parameters will become pre-bound variables in the queries." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLConstructExecutable . + +dash:SPARQLSelectTemplate a rdfs:Class ; + rdfs:label "SPARQL SELECT template" ; + rdfs:comment "Encapsulates a SPARQL SELECT query that can be parameterized. Parameters will become pre-bound variables in the query." ; + rdfs:subClassOf sh:Parameterizable, + sh:SPARQLSelectExecutable . + +dash:SPARQLUpdateSuggestionGenerator a rdfs:Class ; + rdfs:label "SPARQL UPDATE suggestion generator" ; + rdfs:comment """A SuggestionGenerator based on a SPARQL UPDATE query (sh:update), producing an instance of dash:GraphUpdate. The INSERTs become dash:addedTriple and the DELETEs become dash:deletedTriple. The WHERE clause operates on the data graph with the pre-bound variables $focusNode, $predicate and $value, as well as the other pre-bound variables for the parameters of the constraint. + +In many cases, there may be multiple possible suggestions to fix a problem. For example, with sh:maxLength there are many ways to slice a string. In those cases, the system will first iterate through the result variables from a SELECT query (sh:select) and apply these results as pre-bound variables into the UPDATE query.""" ; + rdfs:subClassOf dash:SuggestionGenerator, + sh:SPARQLSelectExecutable, + sh:SPARQLUpdateExecutable . + +dash:ScriptFunction a rdfs:Class, + sh:NodeShape ; + rdfs:label "Script function" ; + rdfs:comment """Script functions can be used from SPARQL queries and will be injected into the generated prefix object (in JavaScript, for ADS scripts). The dash:js will be inserted into a generated JavaScript function and therefore needs to use the return keyword to produce results. These JS snippets can access the parameter values based on the local name of the sh:Parameter's path. For example ex:value can be accessed using value. + +SPARQL use note: Since these functions may be used from any data graph and any shapes graph, they must not rely on any API apart from what's available in the shapes graph that holds the rdf:type triple of the function itself. In other words, at execution time from SPARQL, the ADS shapes graph will be the home graph of the function's declaration.""" ; + rdfs:subClassOf dash:Script, + sh:Function . + +dash:ShapeScript a rdfs:Class ; + rdfs:label "Shape script" ; + rdfs:comment "A shape script contains extra code that gets injected into the API for the associated node shape. In particular you can use this to define additional functions that operate on the current focus node (the this variable in JavaScript)." ; + rdfs:subClassOf dash:Script . + +dash:SuccessResult a rdfs:Class ; + rdfs:label "Success result" ; + rdfs:comment "A result representing a successfully validated constraint." ; + rdfs:subClassOf sh:AbstractResult . + +dash:SuccessTestCaseResult a rdfs:Class ; + rdfs:label "Success test case result" ; + rdfs:comment "Represents a successful run of a test case." ; + rdfs:subClassOf dash:TestCaseResult . + +dash:Suggestion a rdfs:Class ; + rdfs:label "Suggestion" ; + dash:abstract true ; + rdfs:comment "Base class of suggestions that modify a graph to \"fix\" the source of a validation result." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionGenerator a rdfs:Class ; + rdfs:label "Suggestion generator" ; + dash:abstract true ; + rdfs:comment "Base class of objects that can generate suggestions (added or deleted triples) for a validation result of a given constraint component." ; + rdfs:subClassOf rdfs:Resource . + +dash:SuggestionResult a rdfs:Class ; + rdfs:label "Suggestion result" ; + rdfs:comment "Class of results that have been produced as suggestions, not through SHACL validation. How the actual results are produced is up to implementers. Each instance of this class should have values for sh:focusNode, sh:resultMessage, sh:resultSeverity (suggested default: sh:Info), and dash:suggestion to point at one or more suggestions." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestCaseResult a rdfs:Class ; + rdfs:label "Test case result" ; + dash:abstract true ; + rdfs:comment "Base class for results produced by running test cases." ; + rdfs:subClassOf sh:AbstractResult . + +dash:TestEnvironment a rdfs:Class ; + rdfs:label "Test environment" ; + dash:abstract true ; + rdfs:comment "Abstract base class for test environments, holding information on how to set up a test case." ; + rdfs:subClassOf rdfs:Resource . + +rdf:Alt a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Alt, + rdfs:Container . + +rdf:Bag a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Bag, + rdfs:Container . + +rdf:List a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:List, + rdfs:Resource . + +rdf:Property a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf rdf:Property, + rdfs:Resource . + +rdf:Seq a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Seq, + rdfs:Container . + +rdf:Statement a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Statement, + rdfs:Resource . + +rdf:XMLLiteral a rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Class a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Resource . + +rdfs:Container a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Container . + +rdfs:ContainerMembershipProperty a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdf:Property, + rdfs:ContainerMembershipProperty, + rdfs:Resource . + +rdfs:Datatype a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Class, + rdfs:Datatype, + rdfs:Resource . + +rdfs:Literal a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Literal, + rdfs:Resource . + +rdfs:Resource a rdfs:Class, + rdfs:Resource ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:subClassOf rdfs:Class . + +owl:Ontology a rdfs:Class, + rdfs:Resource . + +unl:UNL_Document a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Documents, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UNL_Scope a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For more information about UNL Scopes, see : +http://www.unlweb.net/wiki/Scope + +The UNL representation is a hyper-graph, which means that it may consist of several interlinked or subordinate sub-graphs. These sub-graphs are represented as hyper-nodes and correspond roughly to the concept of dependent (subordinate) clauses, i.e., groups of words that consist of a subject (explicit or implied) and a predicate and which are embedded in a larger structure (the independent clause). They are used to define the boundaries between complex semantic entities being represented.""" ; + rdfs:subClassOf unl:UNL_Graph_Node . + +unl:UNL_Sentence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:comment """For mor information about UNL Sentences, see : +http://www.unlweb.net/wiki/UNL_sentence + +UNL sentences, or UNL expressions, are sentences of UNL. They are hypergraphs made out of nodes (Universal Words) interlinked by binary semantic Universal Relations and modified by Universal Attributes. UNL sentences have been the basic unit of representation inside the UNL framework.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:UW_Lexeme a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf skos:Concept, + unl:UNLKB_Node, + unl:Universal_Word . + +unl:UW_Occurrence a rdfs:Class, + rdfs:Resource, + owl:Class ; + rdfs:subClassOf unl:UNL_Graph_Node, + unl:Universal_Word . + +unl:agt a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "agt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "agent"@en ; + skos:definition "A participant in an action or process that provokes a change of state or location."@en ; + skos:example """John killed Mary = agt(killed;John) +Mary was killed by John = agt(killed;John) +arrival of John = agt(arrival;John)"""@en . + +unl:aoj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "aoj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "object of an attribute"@en ; + skos:definition "The subject of an stative verb. Also used to express the predicative relation between the predicate and the subject."@en ; + skos:example """John has two daughters = aoj(have;John) +the book belongs to Mary = aoj(belong;book) +the book contains many pictures = aoj(contain;book) +John is sad = aoj(sad;John) +John looks sad = aoj(sad;John)"""@en . + +unl:ben a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "ben" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "beneficiary"@en ; + skos:definition "A participant who is advantaged or disadvantaged by an event."@en ; + skos:example """John works for Peter = ben(works;Peter) +John gave the book to Mary for Peter = ben(gave;Peter)"""@en . + +unl:man a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "man" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "manner"@en ; + skos:definition "Used to indicate how the action, experience or process of an event is carried out."@en ; + skos:example """John bought the car quickly = man(bought;quickly) +John bought the car in equal payments = man(bought;in equal payments) +John paid in cash = man(paid;in cash) +John wrote the letter in German = man(wrote;in German) +John wrote the letter in a bad manner = man(wrote;in a bad manner)"""@en . + +unl:mod a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "mod" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "modifier"@en ; + skos:definition "A general modification of an entity."@en ; + skos:example """a beautiful book = mod(book;beautiful) +an old book = mod(book;old) +a book with 10 pages = mod(book;with 10 pages) +a book in hard cover = mod(book;in hard cover) +a poem in iambic pentameter = mod(poem;in iambic pentamenter) +a man in an overcoat = mod(man;in an overcoat)"""@en . + +unl:obj a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "obj" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "patient"@en ; + skos:definition "A participant in an action or process undergoing a change of state or location."@en ; + skos:example """John killed Mary = obj(killed;Mary) +Mary died = obj(died;Mary) +The snow melts = obj(melts;snow)"""@en . + +unl:or a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "or" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "disjunction"@en ; + skos:definition "Used to indicate a disjunction between two entities."@en ; + skos:example """John or Mary = or(John;Mary) +either John or Mary = or(John;Mary)"""@en . + +unl:res a rdfs:Class, + rdfs:Resource, + owl:Class, + owl:ObjectProperty ; + rdfs:label "res" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "result or factitive"@en ; + skos:definition "A referent that results from an entity or event."@en ; + skos:example """The cook bake a cake = res(bake;cake) +They built a very nice building = res(built;a very nice building)"""@en . + +dash:ActionTestCase a dash:ShapeClass ; + rdfs:label "Action test case" ; + rdfs:comment """A test case that evaluates a dash:Action using provided input parameters. Requires exactly one value for dash:action and will operate on the test case's graph (with imports) as both data and shapes graph. + +Currently only supports read-only actions, allowing the comparison of actual results with the expected results.""" ; + rdfs:subClassOf dash:TestCase . + +dash:AllObjects a dash:AllObjectsTarget ; + rdfs:label "All objects" ; + rdfs:comment "A reusable instance of dash:AllObjectsTarget." . + +dash:AllSubjects a dash:AllSubjectsTarget ; + rdfs:label "All subjects" ; + rdfs:comment "A reusable instance of dash:AllSubjectsTarget." . + +dash:AutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Auto-complete editor" ; + rdfs:comment "An auto-complete field to enter the label of instances of a class. This is the fallback editor for any URI resource if no other editors are more suitable." . + +dash:BlankNodeViewer a dash:SingleViewer ; + rdfs:label "Blank node viewer" ; + rdfs:comment "A Viewer for blank nodes, rendering as the label of the blank node." . + +dash:BooleanSelectEditor a dash:SingleEditor ; + rdfs:label "Boolean select editor" ; + rdfs:comment """An editor for boolean literals, rendering as a select box with values true and false. + +Also displays the current value (such as "1"^^xsd:boolean), but only allows to switch to true or false.""" . + +dash:ClosedByTypesConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Closed by types constraint component" ; + rdfs:comment "A constraint component that can be used to declare that focus nodes are \"closed\" based on their rdf:types, meaning that focus nodes may only have values for the properties that are explicitly enumerated via sh:property/sh:path in property constraints at their rdf:types and the superclasses of those. This assumes that the type classes are also shapes." ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosedByTypesNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Property is not among those permitted for any of the types" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Property {?path} is not among those permitted for any of the types" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this (?predicate AS ?path) ?value +WHERE { + FILTER ($closedByTypes) . + $this ?predicate ?value . + FILTER (?predicate != rdf:type) . + FILTER NOT EXISTS { + $this rdf:type ?type . + ?type rdfs:subClassOf* ?class . + GRAPH $shapesGraph { + ?class sh:property/sh:path ?predicate . + } + } +}""" ] ; + sh:parameter dash:ClosedByTypesConstraintComponent-closedByTypes . + +dash:CoExistsWithConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Co-exists-with constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that if the property path has any value then the given property must also have a value, and vice versa." ; + sh:message "Values must co-exist with values of {$coExistsWith}" ; + sh:parameter dash:CoExistsWithConstraintComponent-coExistsWith ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateCoExistsWith" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + { + FILTER (EXISTS { $this $PATH ?any } && NOT EXISTS { $this $coExistsWith ?any }) + } + UNION + { + FILTER (NOT EXISTS { $this $PATH ?any } && EXISTS { $this $coExistsWith ?any }) + } +}""" ] . + +dash:DateOrDateTime a rdf:List ; + rdfs:label "Date or date time" ; + rdf:first [ sh:datatype xsd:date ] ; + rdf:rest ( [ sh:datatype xsd:dateTime ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:date or xsd:dateTime." . + +dash:DatePickerEditor a dash:SingleEditor ; + rdfs:label "Date picker editor" ; + rdfs:comment "An editor for xsd:date literals, offering a calendar-like date picker." . + +dash:DateTimePickerEditor a dash:SingleEditor ; + rdfs:label "Date time picker editor" ; + rdfs:comment "An editor for xsd:dateTime literals, offering a calendar-like date picker and a time selector." . + +dash:DepictionRole a dash:PropertyRole ; + rdfs:label "Depiction" ; + rdfs:comment "Depiction properties provide images representing the focus nodes. Typical examples may be a photo of an animal or the map of a country." . + +dash:DescriptionRole a dash:PropertyRole ; + rdfs:label "Description" ; + rdfs:comment "Description properties should produce text literals that may be used as an introduction/summary of what a focus node does." . + +dash:DetailsEditor a dash:SingleEditor ; + rdfs:label "Details editor" ; + rdfs:comment "An editor for non-literal values, typically displaying a nested form where the values of the linked resource can be edited directly on the \"parent\" form. Implementations that do not support this (yet) could fall back to an auto-complete widget." . + +dash:DetailsViewer a dash:SingleViewer ; + rdfs:label "Details viewer" ; + rdfs:comment "A Viewer for resources that shows the details of the value using its default view shape as a nested form-like display." . + +dash:EnumSelectEditor a dash:SingleEditor ; + rdfs:label "Enum select editor" ; + rdfs:comment "A drop-down editor for enumerated values (typically based on sh:in lists)." . + +dash:FunctionTestCase a dash:ShapeClass ; + rdfs:label "Function test case" ; + rdfs:comment "A test case that verifies that a given SPARQL expression produces a given, expected result." ; + rdfs:subClassOf dash:TestCase . + +dash:GraphStoreTestCase a dash:ShapeClass ; + rdfs:label "Graph store test case" ; + rdfs:comment "A test case that can be used to verify that an RDF file could be loaded (from a file) and that the resulting RDF graph is equivalent to a given TTL file." ; + rdfs:subClassOf dash:TestCase . + +dash:HTMLOrStringOrLangString a rdf:List ; + rdfs:label "HTML or string or langString" ; + rdf:first [ sh:datatype rdf:HTML ] ; + rdf:rest ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either rdf:HTML, xsd:string or rdf:langString (in that order of preference)." . + +dash:HTMLViewer a dash:SingleViewer ; + rdfs:label "HTML viewer" ; + rdfs:comment "A Viewer for HTML encoded text from rdf:HTML literals, rendering as parsed HTML DOM elements. Also displays the language if the HTML has a lang attribute on its root DOM element." . + +dash:HasValueInConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value in constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be a member of a given list of nodes." ; + sh:message "At least one of the values must be in {$hasValueIn}" ; + sh:parameter dash:HasValueInConstraintComponent-hasValueIn ; + sh:propertyValidator [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + GRAPH $shapesGraph { + $hasValueIn rdf:rest*/rdf:first ?value . + } + } +}""" ] . + +dash:HasValueTarget a sh:SPARQLTargetType ; + rdfs:label "Has Value target" ; + rdfs:comment "A target type for all subjects where a given predicate has a certain object value." ; + rdfs:subClassOf sh:Target ; + sh:labelTemplate "All subjects where {$predicate} has value {$object}" ; + sh:parameter [ a sh:Parameter ; + sh:description "The value that is expected to be present." ; + sh:name "object" ; + sh:path dash:object ], + [ a sh:Parameter ; + sh:description "The predicate property." ; + sh:name "predicate" ; + sh:nodeKind sh:IRI ; + sh:path dash:predicate ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this $predicate $object . +}""" . + +dash:HasValueWithClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Has value with class constraint component" ; + rdfs:comment "A constraint component that can be used to express a constraint on property shapes so that one of the values of the property path must be an instance of a given class." ; + sh:message "At least one of the values must be an instance of class {$hasValueWithClass}" ; + sh:parameter dash:HasValueWithClassConstraintComponent-hasValueWithClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueWithClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this +WHERE { + FILTER NOT EXISTS { + $this $PATH ?value . + ?value a ?type . + ?type rdfs:subClassOf* $hasValueWithClass . + } +}""" ] . + +dash:HyperlinkViewer a dash:SingleViewer ; + rdfs:label "Hyperlink viewer" ; + rdfs:comment """A Viewer for literals, rendering as a hyperlink to a URL. + +For literals it assumes the lexical form is the URL. + +This is often used as default viewer for xsd:anyURI literals. Unsupported for blank nodes.""" . + +dash:IDRole a dash:PropertyRole ; + rdfs:label "ID" ; + rdfs:comment "ID properties are short strings or other literals that identify the focus node among siblings. Examples may include social security numbers." . + +dash:IconRole a dash:PropertyRole ; + rdfs:label "Icon" ; + rdfs:comment """Icon properties produce images that are typically small and almost square-shaped, and that may be displayed in the upper left corner of a focus node's display. Values should be xsd:string or xsd:anyURI literals or IRI nodes pointing at URLs. Those URLs should ideally be vector graphics such as .svg files. + +Instances of the same class often have the same icon, and this icon may be computed using a sh:values rule or as sh:defaultValue.\r +\r +If the value is a relative URL then those should be resolved against the server that delivered the surrounding page.""" . + +dash:ImageViewer a dash:SingleViewer ; + rdfs:label "Image viewer" ; + rdfs:comment "A Viewer for URI values that are recognized as images by a browser, rendering as an image." . + +dash:IndexedConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Indexed constraint component" ; + rdfs:comment "A constraint component that can be used to mark property shapes to be indexed, meaning that each of its value nodes must carry a dash:index from 0 to N." ; + sh:parameter dash:IndexedConstraintComponent-indexed . + +dash:InferencingTestCase a dash:ShapeClass ; + rdfs:label "Inferencing test case" ; + rdfs:comment "A test case to verify whether an inferencing engine is producing identical results to those stored as expected results." ; + rdfs:subClassOf dash:TestCase . + +dash:InstancesSelectEditor a dash:SingleEditor ; + rdfs:label "Instances select editor" ; + rdfs:comment "A drop-down editor for all instances of the target class (based on sh:class of the property)." . + +dash:JSTestCase a dash:ShapeClass ; + rdfs:label "SHACL-JS test case" ; + rdfs:comment "A test case that calls a given SHACL-JS JavaScript function like a sh:JSFunction and compares its result with the dash:expectedResult." ; + rdfs:subClassOf dash:TestCase, + sh:JSFunction . + +dash:KeyInfoRole a dash:PropertyRole ; + rdfs:label "Key info" ; + rdfs:comment "The Key info role may be assigned to properties that are likely of special interest to a reader, so that they should appear whenever a summary of a focus node is shown." . + +dash:LabelRole a dash:PropertyRole ; + rdfs:label "Label" ; + rdfs:comment "Properties with this role produce strings that may serve as display label for the focus nodes. Labels should be either plain string literals or strings with a language tag. The values should also be single-line." . + +dash:LabelViewer a dash:SingleViewer ; + rdfs:label "Label viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI based on the display label of the resource. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:LangStringViewer a dash:SingleViewer ; + rdfs:label "LangString viewer" ; + rdfs:comment "A Viewer for literals with a language tag, rendering as the text plus a language indicator." . + +dash:LiteralViewer a dash:SingleViewer ; + rdfs:label "Literal viewer" ; + rdfs:comment "A simple viewer for literals, rendering the lexical form of the value." . + +dash:ModifyAction a dash:ShapeClass ; + rdfs:label "Modify action" ; + rdfs:comment "An action typically showing up in a Modify section of a selected resource. May make changes to the data." ; + rdfs:subClassOf dash:ResourceAction . + +dash:MultiEditor a dash:ShapeClass ; + rdfs:label "Multi editor" ; + rdfs:comment "An editor for multiple/all value nodes at once." ; + rdfs:subClassOf dash:Editor . + +dash:NodeExpressionViewer a dash:SingleViewer ; + rdfs:label "Node expression viewer" ; + rdfs:comment "A viewer for SHACL Node Expressions."^^rdf:HTML . + +dash:NonRecursiveConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Non-recursive constraint component" ; + rdfs:comment "Used to state that a property or path must not point back to itself." ; + sh:message "Points back at itself (recursively)" ; + sh:parameter dash:NonRecursiveConstraintComponent-nonRecursive ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateNonRecursiveProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ($this AS ?value) +WHERE { + { + FILTER (?nonRecursive) + } + $this $PATH $this . +}""" ] . + +dash:None a sh:NodeShape ; + rdfs:label "None" ; + rdfs:comment "A Shape that is no node can conform to." ; + sh:in () . + +dash:ParameterConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Parameter constraint component"@en ; + rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given Parameter."@en ; + sh:parameter dash:ParameterConstraintComponent-parameter . + +dash:PrimaryKeyConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Primary key constraint component" ; + dash:localConstraint true ; + rdfs:comment "Enforces a constraint that the given property (sh:path) serves as primary key for all resources in the target of the shape. If a property has been declared to be the primary key then each resource must have exactly one value for that property. Furthermore, the URIs of those resources must start with a given string (dash:uriStart), followed by the URL-encoded primary key value. For example if dash:uriStart is \"http://example.org/country-\" and the primary key for an instance is \"de\" then the URI must be \"http://example.org/country-de\". Finally, as a result of the URI policy, there can not be any other resource with the same value under the same primary key policy." ; + sh:labelTemplate "The property {?predicate} is the primary key and URIs start with {?uriStart}" ; + sh:message "Violation of primary key constraint" ; + sh:parameter dash:PrimaryKeyConstraintComponent-uriStart ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validatePrimaryKeyProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this +WHERE { + FILTER ( + # Must have a value for the primary key + NOT EXISTS { ?this $PATH ?any } + || + # Must have no more than one value for the primary key + EXISTS { + ?this $PATH ?value1 . + ?this $PATH ?value2 . + FILTER (?value1 != ?value2) . + } + || + # The value of the primary key must align with the derived URI + EXISTS { + { + ?this $PATH ?value . + FILTER NOT EXISTS { ?this $PATH ?value2 . FILTER (?value != ?value2) } + } + BIND (CONCAT($uriStart, ENCODE_FOR_URI(str(?value))) AS ?uri) . + FILTER (str(?this) != ?uri) . + } + ) +}""" ] . + +dash:QueryTestCase a dash:ShapeClass ; + rdfs:label "Query test case" ; + rdfs:comment "A test case running a given SPARQL SELECT query and comparing its results with those stored as JSON Result Set in the expected result property." ; + rdfs:subClassOf dash:TestCase, + sh:SPARQLSelectExecutable . + +dash:ReifiableByConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Reifiable-by constraint component" ; + sh:labelTemplate "Reifiable by {$reifiableBy}" ; + sh:parameter dash:ReifiableByConstraintComponent-reifiableBy . + +dash:RichTextEditor a dash:SingleEditor ; + rdfs:label "Rich text editor" ; + rdfs:comment "A rich text editor to enter the lexical value of a literal and a drop down to select language. The selected language is stored in the HTML lang attribute of the root node in the HTML DOM tree." . + +dash:RootClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Root class constraint component" ; + rdfs:comment "A constraint component defining the parameter dash:rootClass, which restricts the values to be either the root class itself or one of its subclasses. This is typically used in conjunction with properties that have rdfs:Class as their type." ; + sh:labelTemplate "Root class {$rootClass}" ; + sh:message "Value must be subclass of {$rootClass}" ; + sh:parameter dash:RootClassConstraintComponent-rootClass ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateRootClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasRootClass . + +dash:ScriptConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Script constraint component" ; + sh:parameter dash:ScriptConstraintComponent-scriptConstraint . + +dash:ScriptSuggestionGenerator a dash:ShapeClass ; + rdfs:label "Script suggestion generator" ; + rdfs:comment """A Suggestion Generator that is backed by an Active Data Shapes script. The script needs to return a JSON object or an array of JSON objects if it shall generate multiple suggestions. It may also return null to indicate that nothing was suggested. Note that the whole script is evaluated as a (JavaScript) expression, and those will use the last value as result. So simply putting an object at the end of your script should do. Alternatively, define the bulk of the operation as a function and simply call that function in the script. + +Each response object can have the following fields: + +{ + message: "The human readable message", // Defaults to the rdfs:label(s) of the suggestion generator + add: [ // An array of triples to add, each triple as an array with three nodes + [ subject, predicate, object ], + [ ... ] + ], + delete: [ + ... like add, for the triples to delete + ] +} + +Suggestions with neither added nor deleted triples will be discarded. + +At execution time, the script operates on the data graph as the active graph, with the following pre-bound variables: +- focusNode: the NamedNode that is the sh:focusNode of the validation result +- predicate: the NamedNode representing the predicate of the validation result, assuming sh:resultPath is a URI +- value: the value node from the validation result's sh:value, cast into the most suitable JS object +- the other pre-bound variables for the parameters of the constraint, e.g. in a sh:maxCount constraint it would be maxCount + +The script will be executed in read-only mode, i.e. it cannot modify the graph. + +Example with dash:js: + +({ + message: `Copy labels into ${graph.localName(predicate)}`, + add: focusNode.values(rdfs.label).map(label => + [ focusNode, predicate, label ] + ) +})""" ; + rdfs:subClassOf dash:Script, + dash:SuggestionGenerator . + +dash:ScriptTestCase a dash:ShapeClass ; + rdfs:label "Script test case" ; + rdfs:comment """A test case that evaluates a script. Requires exactly one value for dash:js and will operate on the test case's graph (with imports) as both data and shapes graph. + +Supports read-only scripts only at this stage.""" ; + rdfs:subClassOf dash:Script, + dash:TestCase . + +dash:ScriptValidator a dash:ShapeClass ; + rdfs:label "Script validator" ; + rdfs:comment """A SHACL validator based on an Active Data Shapes script. + +See the comment at dash:ScriptConstraint for the basic evaluation approach. Note that in addition to focusNode and value/values, the script can access pre-bound variables for each declared argument of the constraint component.""" ; + rdfs:subClassOf dash:Script, + sh:Validator . + +dash:SingleLineConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Single line constraint component" ; + rdfs:comment """A constraint component that can be used to declare that all values that are literals must have a lexical form that contains no line breaks ('\\n' or '\\r'). + +User interfaces may use the dash:singleLine flag to prefer a text field over a (multi-line) text area.""" ; + sh:message "Must not contain line breaks." ; + sh:parameter dash:SingleLineConstraintComponent-singleLine ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSingleLine" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER (!$singleLine || !isLiteral($value) || (!contains(str($value), '\\n') && !contains(str($value), '\\r'))) +}""" ; + sh:prefixes <http://datashapes.org/dash> ] . + +dash:StemConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Stem constraint component"@en ; + dash:staticConstraint true ; + rdfs:comment "A constraint component that can be used to verify that every value node is an IRI and the IRI starts with a given string value."@en ; + sh:labelTemplate "Value needs to have stem {$stem}" ; + sh:message "Value does not have stem {$stem}" ; + sh:parameter dash:StemConstraintComponent-stem ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateStem" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasStem . + +dash:StringOrLangStringOrHTML a rdf:List ; + rdfs:label "string or langString or HTML" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] [ sh:datatype rdf:HTML ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string, rdf:langString or rdf:HTML (in that order of preference)." . + +dash:SubClassEditor a dash:SingleEditor ; + rdfs:label "Sub-Class editor" ; + rdfs:comment "An editor for properties that declare a dash:rootClass. The editor allows selecting either the class itself or one of its subclasses." . + +dash:SubSetOfConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Sub set of constraint component" ; + dash:localConstraint true ; + rdfs:comment "A constraint component that can be used to state that the set of value nodes must be a subset of the value of a given property." ; + sh:message "Must be one of the values of {$subSetOf}" ; + sh:parameter dash:SubSetOfConstraintComponent-subSetOf ; + sh:propertyValidator [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + $this $subSetOf $value . +}""" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateSubSetOf" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +dash:SymmetricConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Symmetric constraint component" ; + rdfs:comment "A contraint component for property shapes to validate that a property is symmetric. For symmetric properties, if A relates to B then B must relate to A." ; + sh:message "Symmetric value expected" ; + sh:parameter dash:SymmetricConstraintComponent-symmetric ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateSymmetric" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT $this ?value { + FILTER ($symmetric) . + $this $PATH ?value . + FILTER NOT EXISTS { + ?value $PATH $this . + } +}""" ] . + +dash:TextAreaEditor a dash:SingleEditor ; + rdfs:label "Text area editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal." . + +dash:TextAreaWithLangEditor a dash:SingleEditor ; + rdfs:label "Text area with lang editor" ; + rdfs:comment "A multi-line text area to enter the value of a literal and a drop down to select a language." . + +dash:TextFieldEditor a dash:SingleEditor ; + rdfs:label "Text field editor" ; + rdfs:comment """A simple input field to enter the value of a literal, without the ability to change language or datatype. + +This is the fallback editor for any literal if no other editors are more suitable.""" . + +dash:TextFieldWithLangEditor a dash:SingleEditor ; + rdfs:label "Text field with lang editor" ; + rdfs:comment "A single-line input field to enter the value of a literal and a drop down to select language, which is mandatory unless xsd:string is among the permissible datatypes." . + +dash:URIEditor a dash:SingleEditor ; + rdfs:label "URI editor" ; + rdfs:comment "An input field to enter the URI of a resource, e.g. rdfs:seeAlso links or images." . + +dash:URIViewer a dash:SingleViewer ; + rdfs:label "URI viewer" ; + rdfs:comment "A Viewer for URI resources, rendering as a hyperlink to that URI. Also includes other ways of interacting with the URI such as opening a nested summary display." . + +dash:UniqueValueForClassConstraintComponent a sh:ConstraintComponent ; + rdfs:label "Unique value for class constraint component" ; + dash:propertySuggestionGenerator tosh:DeleteTripleSuggestionGenerator ; + rdfs:comment "A constraint component that can be used to state that the values of a property must be unique for all instances of a given class (and its subclasses)." ; + sh:labelTemplate "Values must be unique among all instances of {?uniqueValueForClass}" ; + sh:parameter dash:UniqueValueForClassConstraintComponent-uniqueValueForClass ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueValueForClass" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value {?value} must be unique but is also used by {?other}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Value {?value} must be unique but is also used by {?other}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT $this ?value ?other +WHERE { + { + $this $PATH ?value . + ?other $PATH ?value . + FILTER (?other != $this) . + } + ?other a ?type . + ?type rdfs:subClassOf* $uniqueValueForClass . +}""" ] . + +dash:UntrustedHTMLViewer a dash:SingleViewer ; + rdfs:label "Untrusted HTML viewer" ; + rdfs:comment "A Viewer for HTML content from untrusted sources. This viewer will sanitize the HTML before rendering. Any a, button, checkbox, form, hidden, input, img, script, select, style and textarea tags and class and style attributes will be removed." . + +dash:ValueTableViewer a dash:MultiViewer ; + rdfs:label "Value table viewer" ; + rdfs:comment "A viewer that renders all values of a given property as a table, with one value per row, and the columns defined by the shape that is the sh:node or sh:class of the property." . + +dash:abstract a rdf:Property ; + rdfs:label "abstract" ; + rdfs:comment "Indicates that a class is \"abstract\" and cannot be used in asserted rdf:type triples. Only non-abstract subclasses of abstract classes should be instantiated directly." ; + rdfs:domain rdfs:Class ; + rdfs:range xsd:boolean . + +dash:actionGroup a rdf:Property ; + rdfs:label "action group" ; + rdfs:comment "Links an Action with the ActionGroup that it should be arranged in." ; + rdfs:domain dash:Action ; + rdfs:range dash:ActionGroup . + +dash:actionIconClass a rdf:Property ; + rdfs:label "action icon class" ; + rdfs:comment "The (CSS) class of an Action for display purposes alongside the label." ; + rdfs:domain dash:Action ; + rdfs:range xsd:string . + +dash:addedTriple a rdf:Property ; + rdfs:label "added triple" ; + rdfs:comment "May link a dash:GraphUpdate with one or more triples (represented as instances of rdf:Statement) that should be added to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:all a rdfs:Resource ; + rdfs:label "all" ; + rdfs:comment "Represents all users/roles, for example as a possible value of the default view for role property." . + +dash:applicableToClass a rdf:Property ; + rdfs:label "applicable to class" ; + rdfs:comment "Can be used to state that a shape is applicable to instances of a given class. This is a softer statement than \"target class\": a target means that all instances of the class must conform to the shape. Being applicable to simply means that the shape may apply to (some) instances of the class. This information can be used by algorithms or humans." ; + rdfs:domain sh:Shape ; + rdfs:range rdfs:Class . + +dash:cachable a rdf:Property ; + rdfs:label "cachable" ; + rdfs:comment "If set to true then the results of the SHACL function can be cached in between invocations with the same arguments. In other words, they are stateless and do not depend on triples in any graph, or the current time stamp etc." ; + rdfs:domain sh:Function ; + rdfs:range xsd:boolean . + +dash:composite a rdf:Property ; + rdfs:label "composite" ; + rdfs:comment "Can be used to indicate that a property/path represented by a property constraint represents a composite relationship. In a composite relationship, the life cycle of a \"child\" object (value of the property/path) depends on the \"parent\" object (focus node). If the parent gets deleted, then the child objects should be deleted, too. Tools may use dash:composite (if set to true) to implement cascading delete operations." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:defaultLang a rdf:Property ; + rdfs:label "default language" ; + rdfs:comment "Can be used to annotate a graph (usually the owl:Ontology) with the default language that tools should suggest for new literal values. For example, predominantly English graphs should have \"en\" as default language." ; + rdfs:domain owl:Ontology ; + rdfs:range xsd:string . + +dash:defaultViewForRole a rdf:Property ; + rdfs:label "default view for role" ; + rdfs:comment "Links a node shape with the roles for which it shall be used as default view. User interfaces can use these values to select how to present a given RDF resource. The values of this property are URIs representing a group of users or agents. There is a dedicated URI dash:all representing all users." ; + rdfs:domain sh:NodeShape . + +dash:deletedTriple a rdf:Property ; + rdfs:label "deleted triple" ; + rdfs:comment "May link a dash:GraphUpdate result with one or more triples (represented as instances of rdf:Statement) that should be deleted to fix the source of the result." ; + rdfs:domain dash:GraphUpdate ; + rdfs:range rdf:Statement . + +dash:dependencyPredicate a rdf:Property ; + rdfs:label "dependency predicate" ; + rdfs:comment "Can be used in dash:js node expressions to enumerate the predicates that the computation of the values may depend on. This can be used by clients to determine whether an edit requires re-computation of values on a form or elsewhere. For example, if the dash:js is something like \"focusNode.firstName + focusNode.lastName\" then the dependency predicates should be ex:firstName and ex:lastName." ; + rdfs:range rdf:Property . + +dash:detailsEndpoint a rdf:Property ; + rdfs:label "details endpoint" ; + rdfs:comment """Can be used to link a SHACL property shape with the URL of a SPARQL endpoint that may contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to values from an external graph when the user wants to retrieve more information about a value. + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information. One implementation strategy would be to periodically fetch the values specified by the sh:node or sh:class shape associated with the property, using the property shapes in that shape, and add the resulting triples into the main query graph. + +An example value is "https://query.wikidata.org/sparql".""" . + +dash:detailsGraph a rdf:Property ; + rdfs:label "details graph" ; + rdfs:comment """Can be used to link a SHACL property shape with a SHACL node expression that produces the URIs of one or more graphs that contain further RDF triples for the value nodes delivered by the property. This can be used to inform a processor that it should switch to another data graph when the user wants to retrieve more information about a value. + +The node expressions are evaluated with the focus node as input. (It is unclear whether there are also cases where the result may be different for each specific value, in which case the node expression would need a second input argument). + +This property should be regarded as an "annotation", i.e. it does not have any impact on validation or other built-in SHACL features. However, selected tools may want to use this information.""" . + +dash:editor a rdf:Property ; + rdfs:label "editor" ; + rdfs:comment "Can be used to link a property shape with an editor, to state a preferred editing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Editor . + +dash:excludedPrefix a rdf:Property ; + rdfs:label "excluded prefix" ; + rdfs:comment "Specifies a prefix that shall be excluded from the Script code generation." ; + rdfs:range xsd:string . + +dash:expectedResult a rdf:Property ; + rdfs:label "expected result" ; + rdfs:comment "The expected result(s) of a test case. The value range of this property is different for each kind of test cases." ; + rdfs:domain dash:TestCase . + +dash:expectedResultIsJSON a rdf:Property ; + rdfs:label "expected result is JSON" ; + rdfs:comment "A flag to indicate that the expected result represents a JSON string. If set to true, then tests would compare JSON structures (regardless of whitespaces) instead of actual syntax." ; + rdfs:range xsd:boolean . + +dash:expectedResultIsTTL a rdf:Property ; + rdfs:label "expected result is Turtle" ; + rdfs:comment "A flag to indicate that the expected result represents an RDF graph encoded as a Turtle file. If set to true, then tests would compare graphs instead of actual syntax." ; + rdfs:domain dash:TestCase ; + rdfs:range xsd:boolean . + +dash:fixed a rdf:Property ; + rdfs:label "fixed" ; + rdfs:comment "Can be used to mark that certain validation results have already been fixed." ; + rdfs:domain sh:ValidationResult ; + rdfs:range xsd:boolean . + +dash:height a rdf:Property ; + rdfs:label "height" ; + rdfs:comment "The height." ; + rdfs:range xsd:integer . + +dash:hidden a rdf:Property ; + rdfs:label "hidden" ; + rdfs:comment "Properties marked as hidden do not appear in user interfaces, yet remain part of the shape for other purposes such as validation and scripting or GraphQL schema generation." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:includedExecutionPlatform a rdf:Property ; + rdfs:label "included execution platform" ; + rdfs:comment "Can be used to state that one (subject) execution platform includes all features of another platform (object)." ; + rdfs:domain dash:ExecutionPlatform ; + rdfs:range dash:ExecutionPlatform . + +dash:index a rdf:Property ; + rdfs:label "index" ; + rdfs:range xsd:integer . + +dash:isDeactivated a sh:SPARQLFunction ; + rdfs:label "is deactivated" ; + rdfs:comment "Checks whether a given shape or constraint has been marked as \"deactivated\" using sh:deactivated." ; + sh:ask """ASK { + ?constraintOrShape sh:deactivated true . +}""" ; + sh:parameter [ a sh:Parameter ; + sh:description "The sh:Constraint or sh:Shape to test." ; + sh:name "constraint or shape" ; + sh:path dash:constraintOrShape ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindBlankNode a sh:SPARQLFunction ; + rdfs:label "is NodeKind BlankNode" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes BlankNodes." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindIRI a sh:SPARQLFunction ; + rdfs:label "is NodeKind IRI" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes IRIs." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isNodeKindLiteral a sh:SPARQLFunction ; + rdfs:label "is NodeKind Literal" ; + dash:cachable true ; + rdfs:comment "Checks if a given sh:NodeKind is one that includes Literals." ; + sh:ask """ASK { + FILTER ($nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral )) +}""" ; + sh:parameter [ a sh:Parameter ; + sh:class sh:NodeKind ; + sh:description "The sh:NodeKind to check." ; + sh:name "node kind" ; + sh:nodeKind sh:IRI ; + sh:path dash:nodeKind ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:isSubClassOf a sh:SPARQLFunction ; + rdfs:label "is subclass of" ; + rdfs:comment "Returns true if a given class (first argument) is a subclass of a given other class (second argument), or identical to that class. This is equivalent to an rdfs:subClassOf* check." ; + sh:ask """ASK { + $subclass rdfs:subClassOf* $superclass . +}""" ; + sh:parameter dash:isSubClassOf-subclass, + dash:isSubClassOf-superclass ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:boolean . + +dash:js a rdf:Property ; + rdfs:label "JavaScript source code" ; + rdfs:comment "The JavaScript source code of a Script." ; + rdfs:domain dash:Script ; + rdfs:range xsd:string . + +dash:localConstraint a rdf:Property ; + rdfs:label "local constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the shape definitions and the direct property values of the focus node mentioned in the property constraints. Examples of this include sh:minCount and sh:hasValue. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server, assuming the client has downloaded a complete snapshot of the resource. + +Any component marked with dash:staticConstraint is also a dash:localConstraint.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:localValues a rdf:Property ; + rdfs:label "local values" ; + rdfs:comment "If set to true at a property shape then any sh:values rules of this property will be ignored when 'all inferences' are computed. This is useful for property values that shall only be computed for individual focus nodes (e.g. when a user visits a resource) but not for large inference runs." ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:mimeTypes a rdf:Property ; + rdfs:label "mime types" ; + rdfs:comment """For file-typed properties, this can be used to specify the expected/allowed mime types of its values. This can be used, for example, to limit file input boxes or file selectors. If multiple values are allowed then they need to be separated by commas. + +Example values are listed at https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types""" ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:string . + +dash:onAllValues a rdf:Property ; + rdfs:label "on all values" ; + rdfs:comment "If set to true for a ScriptConstraint or ScriptValidator, then the associated script will receive all value nodes at once, as a value of the variable values. By default (or false), the script is called for each value node individually." ; + rdfs:range xsd:boolean . + +dash:propertySuggestionGenerator a rdf:Property ; + rdfs:label "property suggestion generator" ; + rdfs:comment "Links the constraint component with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by a property constraint." ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range dash:SuggestionGenerator . + +dash:readOnly a rdf:Property ; + rdfs:label "read only" ; + rdfs:comment "Used as a hint for user interfaces that values of the associated property should not be editable. The values of this may be the boolean literals true or false or, more generally, a SHACL node expression that must evaluate to true or false." ; + rdfs:domain sh:PropertyShape . + +dash:requiredExecutionPlatform a rdf:Property ; + rdfs:label "required execution platform" ; + rdfs:comment "Links a SPARQL executable with the platforms that it can be executed on. This can be used by a SHACL implementation to determine whether a constraint validator or rule shall be ignored based on the current platform. For example, if a SPARQL query uses a function or magic property that is only available in TopBraid then a non-TopBraid platform can ignore the constraint (or simply always return no validation results). If this property has no value then the assumption is that the execution will succeed. As soon as one value exists, the assumption is that the engine supports at least one of the given platforms." ; + rdfs:domain sh:SPARQLExecutable ; + rdfs:range dash:ExecutionPlatform . + +dash:resourceAction a rdf:Property ; + rdfs:label "resource action" ; + rdfs:comment "Links a class with the Resource Actions that can be applied to instances of that class." ; + rdfs:domain rdfs:Class ; + rdfs:range dash:ResourceAction . + +dash:shape a rdf:Property ; + rdfs:label "shape" ; + rdfs:comment "States that a subject resource has a given shape. This property can, for example, be used to capture results of SHACL validation on static data." ; + rdfs:range sh:Shape . + +dash:shapeScript a rdf:Property ; + rdfs:label "shape script" ; + rdfs:domain sh:NodeShape . + +dash:staticConstraint a rdf:Property ; + rdfs:label "static constraint" ; + rdfs:comment """Can be set to true for those constraint components where the validation does not require to visit any other triples than the parameters. Examples of this include sh:datatype or sh:nodeKind, where no further triples need to be queried to determine the result. + +Constraint components that are marked as such can be optimized by engines, e.g. they can be evaluated client-side at form submission time, without having to make a round-trip to a server.""" ; + rdfs:domain sh:ConstraintComponent ; + rdfs:range xsd:boolean . + +dash:suggestion a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a result with one or more suggestions on how to address or improve the underlying issue." ; + rdfs:domain sh:AbstractResult ; + rdfs:range dash:Suggestion . + +dash:suggestionConfidence a rdf:Property ; + rdfs:label "suggestion confidence" ; + rdfs:comment "An optional confidence between 0% and 100%. Suggestions with 100% confidence are strongly recommended. Can be used to sort recommended updates." ; + rdfs:domain dash:Suggestion ; + rdfs:range xsd:decimal . + +dash:suggestionGenerator a rdf:Property ; + rdfs:label "suggestion generator" ; + rdfs:comment "Links a sh:SPARQLConstraint or sh:JSConstraint with instances of dash:SuggestionGenerator that may be used to produce suggestions for a given validation result that was produced by the constraint." ; + rdfs:range dash:SuggestionGenerator . + +dash:suggestionGroup a rdf:Property ; + rdfs:label "suggestion" ; + rdfs:comment "Can be used to link a suggestion with the group identifier to which it belongs. By default this is a link to the dash:SuggestionGenerator, but in principle this could be any value." ; + rdfs:domain dash:Suggestion . + +dash:toString a sh:JSFunction, + sh:SPARQLFunction ; + rdfs:label "to string" ; + dash:cachable true ; + rdfs:comment "Returns a literal with datatype xsd:string that has the input value as its string. If the input value is an (URI) resource then its URI will be used." ; + sh:jsFunctionName "dash_toString" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "Convert {$arg} to xsd:string" ; + sh:parameter [ a sh:Parameter ; + sh:description "The input value." ; + sh:name "arg" ; + sh:nodeKind sh:IRIOrLiteral ; + sh:path dash:arg ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:string ; + sh:select """SELECT (xsd:string($arg) AS ?result) +WHERE { +}""" . + +dash:uriTemplate a sh:SPARQLFunction ; + rdfs:label "URI template" ; + dash:cachable true ; + rdfs:comment """Inserts a given value into a given URI template, producing a new xsd:anyURI literal. + +In the future this should support RFC 6570 but for now it is limited to simple {...} patterns.""" ; + sh:parameter [ a sh:Parameter ; + sh:datatype xsd:string ; + sh:description "The URI template, e.g. \"http://example.org/{symbol}\"." ; + sh:name "template" ; + sh:order 0 ; + sh:path dash:template ], + [ a sh:Parameter ; + sh:description "The literal value to insert into the template. Will use the URI-encoded string of the lexical form (for now)." ; + sh:name "value" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dash:value ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:anyURI ; + sh:select """SELECT ?result +WHERE { + BIND (xsd:anyURI(REPLACE(?template, "\\\\{[a-zA-Z]+\\\\}", $value)) AS ?result) +}""" . + +dash:validateShapes a rdf:Property ; + rdfs:label "validate shapes" ; + rdfs:comment "True to also validate the shapes itself (i.e. parameter declarations)." ; + rdfs:domain dash:GraphValidationTestCase ; + rdfs:range xsd:boolean . + +dash:valueCount a sh:SPARQLFunction ; + rdfs:label "value count" ; + rdfs:comment "Computes the number of objects for a given subject/predicate combination." ; + sh:parameter [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The predicate to get the number of objects of." ; + sh:name "predicate" ; + sh:order 1 ; + sh:path dash:predicate ], + [ a sh:Parameter ; + sh:class rdfs:Resource ; + sh:description "The subject to get the number of objects of." ; + sh:name "subject" ; + sh:order 0 ; + sh:path dash:subject ] ; + sh:prefixes <http://datashapes.org/dash> ; + sh:returnType xsd:integer ; + sh:select """ + SELECT (COUNT(?object) AS ?result) + WHERE { + $subject $predicate ?object . + } +""" . + +dash:viewer a rdf:Property ; + rdfs:label "viewer" ; + rdfs:comment "Can be used to link a property shape with a viewer, to state a preferred viewing widget in user interfaces." ; + rdfs:domain sh:PropertyShape ; + rdfs:range dash:Viewer . + +dash:width a rdf:Property ; + rdfs:label "width" ; + rdfs:comment "The width." ; + rdfs:range xsd:integer . + +dash:x a rdf:Property ; + rdfs:label "x" ; + rdfs:comment "The x position." ; + rdfs:range xsd:integer . + +dash:y a rdf:Property ; + rdfs:label "y" ; + rdfs:comment "The y position." ; + rdfs:range xsd:integer . + +<http://unsel.rdf-unl.org/store/CCTP-SRSA-IP-20210831/SRSA-IP_STB_PHON_00100#ontology> a owl:Ontology ; + owl:imports default3:ontology, + <https://unl.tetras-libre.fr/rdf/schema> . + +rdf:type a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Class . + +rdfs:comment a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:label a rdf:Property, + rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:range a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdfs:Class . + +rdfs:subClassOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdfs:Class ; + rdfs:range rdfs:Class . + +rdfs:subPropertyOf a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Property ; + rdfs:range rdf:Property . + +sh:AndConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateAnd" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:ClassConstraintComponent sh:labelTemplate "Value needs to have class {$class}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClass" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasClass . + +sh:ClosedConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Closed shape: only the enumerated properties can be used" ; + sh:nodeValidator [ a sh:SPARQLSelectValidator ; + sh:message "Predicate {?path} is not allowed (closed shape)" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this (?predicate AS ?path) ?value + WHERE { + { + FILTER ($closed) . + } + $this ?predicate ?value . + FILTER (NOT EXISTS { + GRAPH $shapesGraph { + $currentShape sh:property/sh:path ?predicate . + } + } && (!bound($ignoredProperties) || NOT EXISTS { + GRAPH $shapesGraph { + $ignoredProperties rdf:rest*/rdf:first ?predicate . + } + })) + } +""" ] ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateClosed" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Predicate is not allowed (closed shape)" ] . + +sh:DatatypeConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Values must have datatype {$datatype}" ; + sh:message "Value does not have datatype {$datatype}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDatatype" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:DisjointConstraintComponent dash:localConstraint true ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateDisjoint" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value node must not also be one of the values of {$disjoint}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ + ASK { + FILTER NOT EXISTS { + $this $disjoint $value . + } + } + """ ; + sh:message "Property must not share any values with {$disjoint}" ; + sh:prefixes <http://datashapes.org/dash> ] . + +sh:EqualsConstraintComponent dash:localConstraint true ; + sh:message "Must have same values as {$equals}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsNode" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + FILTER NOT EXISTS { $this $equals $this } + BIND ($this AS ?value) . + } + UNION + { + $this $equals ?value . + FILTER (?value != $this) . + } + } + """ ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + { + $this $PATH ?value . + MINUS { + $this $equals ?value . + } + } + UNION + { + $this $equals ?value . + MINUS { + $this $PATH ?value . + } + } + } + """ ] . + +sh:HasValueConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have value {$hasValue}" ; + sh:nodeValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueNode" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Value must be {$hasValue}" ], + [ a sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER ($value = $hasValue) +}""" ; + sh:message "Value must be {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ] ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateHasValueProperty" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:message "Missing expected value {$hasValue}" ], + [ a sh:SPARQLSelectValidator ; + sh:message "Missing expected value {$hasValue}" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + FILTER NOT EXISTS { $this $PATH $hasValue } + } + """ ] . + +sh:InConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Value must be in {$in}" ; + sh:message "Value is not in {$in}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isIn . + +sh:JSExecutable dash:abstract true . + +sh:LanguageInConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Language must match any of {$languageIn}" ; + sh:message "Language does not match any of {$languageIn}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateLanguageIn" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:isLanguageIn . + +sh:LessThanConstraintComponent dash:localConstraint true ; + sh:message "Value is not < value of {$lessThan}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThan ?otherValue . + BIND (?value < ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } + """ ] . + +sh:LessThanOrEqualsConstraintComponent dash:localConstraint true ; + sh:message "Value is not <= value of {$lessThanOrEquals}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateLessThanOrEqualsProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + $this $PATH ?value . + $this $lessThanOrEquals ?otherValue . + BIND (?value <= ?otherValue AS ?result) . + FILTER (!bound(?result) || !(?result)) . + } +""" ] . + +sh:MaxCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must not have more than {$maxCount} values" ; + sh:message "More than {$maxCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + $this $PATH ?value . + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) > $maxCount) + """ ] . + +sh:MaxExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be < {$maxExclusive}" ; + sh:message "Value is not < {$maxExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxExclusive . + +sh:MaxInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be <= {$maxInclusive}" ; + sh:message "Value is not <= {$maxInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxInclusive . + +sh:MaxLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must not have more than {$maxLength} characters" ; + sh:message "Value has more than {$maxLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMaxLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMaxLength . + +sh:MinCountConstraintComponent dash:localConstraint true ; + sh:labelTemplate "Must have at least {$minCount} values" ; + sh:message "Fewer than {$minCount} values" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT $this + WHERE { + OPTIONAL { + $this $PATH ?value . + } + } + GROUP BY $this + HAVING (COUNT(DISTINCT ?value) < $minCount) + """ ] . + +sh:MinExclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be > {$minExclusive}" ; + sh:message "Value is not > {$minExclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinExclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinExclusive . + +sh:MinInclusiveConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must be >= {$minInclusive}" ; + sh:message "Value is not >= {$minInclusive}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinInclusive" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinInclusive . + +sh:MinLengthConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have less than {$minLength} characters" ; + sh:message "Value has less than {$minLength} characters" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateMinLength" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasMinLength . + +sh:NodeConstraintComponent sh:message "Value does not have shape {$node}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNode" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:NodeKindConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must have node kind {$nodeKind}" ; + sh:message "Value does not have node kind {$nodeKind}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNodeKind" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasNodeKind . + +sh:NotConstraintComponent sh:labelTemplate "Value must not have shape {$not}" ; + sh:message "Value does have shape {$not}" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateNot" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:OrConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateOr" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:PatternConstraintComponent dash:staticConstraint true ; + sh:labelTemplate "Value must match pattern \"{$pattern}\"" ; + sh:message "Value does not match pattern \"{$pattern}\"" ; + sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validatePattern" ; + sh:jsLibrary dash:DASHJSLibrary ], + dash:hasPattern . + +sh:QualifiedMaxCountConstraintComponent sh:labelTemplate "No more than {$qualifiedMaxCount} values can have shape {$qualifiedValueShape}" ; + sh:message "More than {$qualifiedMaxCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMaxCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:QualifiedMinCountConstraintComponent sh:labelTemplate "No fewer than {$qualifiedMinCount} values can have shape {$qualifiedValueShape}" ; + sh:message "Fewer than {$qualifiedMinCount} values have shape {$qualifiedValueShape}" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateQualifiedMinCountProperty" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:Rule dash:abstract true . + +sh:Rules a rdfs:Resource ; + rdfs:label "SHACL Rules" ; + rdfs:comment "The SHACL rules entailment regime." ; + rdfs:seeAlso <https://www.w3.org/TR/shacl-af/#Rules> . + +sh:TargetType dash:abstract true . + +sh:UniqueLangConstraintComponent dash:localConstraint true ; + sh:labelTemplate "No language can be used more than once" ; + sh:message "Language \"{?lang}\" used more than once" ; + sh:propertyValidator [ a sh:JSValidator ; + sh:jsFunctionName "validateUniqueLangProperty" ; + sh:jsLibrary dash:DASHJSLibrary ], + [ a sh:SPARQLSelectValidator ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """ + SELECT DISTINCT $this ?lang + WHERE { + { + FILTER sameTerm($uniqueLang, true) . + } + $this $PATH ?value . + BIND (lang(?value) AS ?lang) . + FILTER (bound(?lang) && ?lang != "") . + FILTER EXISTS { + $this $PATH ?otherValue . + FILTER (?otherValue != ?value && ?lang = lang(?otherValue)) . + } + } + """ ] . + +sh:XoneConstraintComponent sh:validator [ a sh:JSValidator ; + sh:jsFunctionName "validateXone" ; + sh:jsLibrary dash:DASHJSLibrary ] . + +sh:order rdfs:range xsd:decimal . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<https://tenet.tetras-libre.fr/transduction-schemes> a owl:Ontology ; + owl:imports <http://datashapes.org/dash> . + +cts:batch_execution_1 a cts:batch_execution ; + rdfs:label "batch execution 1" . + +cts:class_generation a owl:Class, + sh:NodeShape ; + rdfs:label "class generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net . + +cts:dev_schemes a owl:Class, + sh:NodeShape ; + rdfs:label "dev schemes" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_add-event, + cts:old_add-state-property, + cts:old_compose-agt-verb-obj-as-simple-event, + cts:old_compose-aoj-verb-obj-as-simple-state-property, + cts:old_compute-domain-range-of-event-object-properties, + cts:old_compute-domain-range-of-state-property-object-properties . + +cts:generation a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:complement-composite-class, + cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +cts:net_extension a owl:Class, + sh:NodeShape ; + rdfs:label "net extension" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:extend-atom-list-net, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:specify-axis-of-atom-list-net . + +cts:preprocessing a owl:Class, + sh:NodeShape ; + rdfs:label "preprocessing" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:bypass-reification, + cts:define-uw-id, + cts:link-to-scope-entry, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:relation_generation a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property, + cts:old_link-classes-by-relation-property . + +cts:relation_generation_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:generate-event-class, + cts:generate-relation-property . + +cts:relation_generation_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property . + +cts:relation_generation_3_1 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 1" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_link-classes-by-relation-property . + +cts:relation_generation_3_2 a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation 3 2" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:link-instances-by-relation-property . + +cts:relation_generation_dga_patch a owl:Class, + sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property, + cts:compute-range-of-relation-property, + cts:generate-event-class, + cts:generate-relation-property, + cts:link-instances-by-relation-property . + +<https://unl.tetras-libre.fr/rdf/schema#@ability> a owl:Class ; + rdfs:label "ability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@about> a owl:Class ; + rdfs:label "about" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@above> a owl:Class ; + rdfs:label "above" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@according_to> a owl:Class ; + rdfs:label "according to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@across> a owl:Class ; + rdfs:label "across" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@active> a owl:Class ; + rdfs:label "active" ; + rdfs:subClassOf unl:voice ; + skos:definition "He built this house in 1895" . + +<https://unl.tetras-libre.fr/rdf/schema#@adjective> a owl:Class ; + rdfs:label "adjective" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@adverb> a owl:Class ; + rdfs:label "adverb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@advice> a owl:Class ; + rdfs:label "advice" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@after> a owl:Class ; + rdfs:label "after" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@again> a owl:Class ; + rdfs:label "again" ; + rdfs:subClassOf unl:positive ; + skos:definition "iterative" . + +<https://unl.tetras-libre.fr/rdf/schema#@against> a owl:Class ; + rdfs:label "against" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@agreement> a owl:Class ; + rdfs:label "agreement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@all> a owl:Class ; + rdfs:label "all" ; + rdfs:subClassOf unl:quantification ; + skos:definition "universal quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@almost> a owl:Class ; + rdfs:label "almost" ; + rdfs:subClassOf unl:degree ; + skos:definition "approximative" . + +<https://unl.tetras-libre.fr/rdf/schema#@along> a owl:Class ; + rdfs:label "along" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@also> a owl:Class ; + rdfs:label "also" ; + rdfs:subClassOf unl:degree, + unl:specification ; + skos:definition "repetitive" . + +<https://unl.tetras-libre.fr/rdf/schema#@although> a owl:Class ; + rdfs:label "although" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@among> a owl:Class ; + rdfs:label "among" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@and> a owl:Class ; + rdfs:label "and" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@anger> a owl:Class ; + rdfs:label "anger" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@angle_bracket> a owl:Class ; + rdfs:label "angle bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@anterior> a owl:Class ; + rdfs:label "anterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "before some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@anthropomorphism> a owl:Class ; + rdfs:label "anthropomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Ascribing human characteristics to something that is not human, such as an animal or a god (see zoomorphism)" . + +<https://unl.tetras-libre.fr/rdf/schema#@antiphrasis> a owl:Class ; + rdfs:label "antiphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Word or words used contradictory to their usual meaning, often with irony" . + +<https://unl.tetras-libre.fr/rdf/schema#@antonomasia> a owl:Class ; + rdfs:label "antonomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a phrase for a proper name or vice versa" . + +<https://unl.tetras-libre.fr/rdf/schema#@any> a owl:Class ; + rdfs:label "any" ; + rdfs:subClassOf unl:quantification ; + skos:definition "existential quantifier" . + +<https://unl.tetras-libre.fr/rdf/schema#@archaic> a owl:Class ; + rdfs:label "archaic" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@around> a owl:Class ; + rdfs:label "around" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@as> a owl:Class ; + rdfs:label "as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as.@if> a owl:Class ; + rdfs:label "as.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_far_as> a owl:Class ; + rdfs:label "as far as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_of> a owl:Class ; + rdfs:label "as of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_per> a owl:Class ; + rdfs:label "as per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_regards> a owl:Class ; + rdfs:label "as regards" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@as_well_as> a owl:Class ; + rdfs:label "as well as" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@assertion> a owl:Class ; + rdfs:label "assertion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@assumption> a owl:Class ; + rdfs:label "assumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@at> a owl:Class ; + rdfs:label "at" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@attention> a owl:Class ; + rdfs:label "attention" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@back> a owl:Class ; + rdfs:label "back" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@barring> a owl:Class ; + rdfs:label "barring" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because> a owl:Class ; + rdfs:label "because" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@because_of> a owl:Class ; + rdfs:label "because of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@before> a owl:Class ; + rdfs:label "before" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@behind> a owl:Class ; + rdfs:label "behind" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@belief> a owl:Class ; + rdfs:label "belief" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@below> a owl:Class ; + rdfs:label "below" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beside> a owl:Class ; + rdfs:label "beside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@besides> a owl:Class ; + rdfs:label "besides" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@between> a owl:Class ; + rdfs:label "between" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@beyond> a owl:Class ; + rdfs:label "beyond" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@both> a owl:Class ; + rdfs:label "both" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@bottom> a owl:Class ; + rdfs:label "bottom" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@brace> a owl:Class ; + rdfs:label "brace" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@brachylogia> a owl:Class ; + rdfs:label "brachylogia" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of conjunctions between a series of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@but> a owl:Class ; + rdfs:label "but" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by> a owl:Class ; + rdfs:label "by" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@by_means_of> a owl:Class ; + rdfs:label "by means of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@catachresis> a owl:Class ; + rdfs:label "catachresis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "use an existing word to denote something that has no name in the current language" . + +<https://unl.tetras-libre.fr/rdf/schema#@causative> a owl:Class ; + rdfs:label "causative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "causative" . + +<https://unl.tetras-libre.fr/rdf/schema#@certain> a owl:Class ; + rdfs:label "certain" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@chiasmus> a owl:Class ; + rdfs:label "chiasmus" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "reversal of grammatical structures in successive clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@circa> a owl:Class ; + rdfs:label "circa" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@climax> a owl:Class ; + rdfs:label "climax" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "arrangement of words in order of increasing importance" . + +<https://unl.tetras-libre.fr/rdf/schema#@clockwise> a owl:Class ; + rdfs:label "clockwise" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@colloquial> a owl:Class ; + rdfs:label "colloquial" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@command> a owl:Class ; + rdfs:label "command" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@comment> a owl:Class ; + rdfs:label "comment" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being said about the topic" . + +<https://unl.tetras-libre.fr/rdf/schema#@concerning> a owl:Class ; + rdfs:label "concerning" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@conclusion> a owl:Class ; + rdfs:label "conclusion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@condition> a owl:Class ; + rdfs:label "condition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@confirmation> a owl:Class ; + rdfs:label "confirmation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consent> a owl:Class ; + rdfs:label "consent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@consequence> a owl:Class ; + rdfs:label "consequence" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@consonance> a owl:Class ; + rdfs:label "consonance" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of consonant sounds without the repetition of the vowel sounds" . + +<https://unl.tetras-libre.fr/rdf/schema#@contact> a owl:Class ; + rdfs:label "contact" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@contentment> a owl:Class ; + rdfs:label "contentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@continuative> a owl:Class ; + rdfs:label "continuative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "continuous" . + +<https://unl.tetras-libre.fr/rdf/schema#@conviction> a owl:Class ; + rdfs:label "conviction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@decision> a owl:Class ; + rdfs:label "decision" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@deduction> a owl:Class ; + rdfs:label "deduction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@desire> a owl:Class ; + rdfs:label "desire" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@despite> a owl:Class ; + rdfs:label "despite" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@determination> a owl:Class ; + rdfs:label "determination" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@dialect> a owl:Class ; + rdfs:label "dialect" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@disagreement> a owl:Class ; + rdfs:label "disagreement" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@discontentment> a owl:Class ; + rdfs:label "discontentment" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@dissent> a owl:Class ; + rdfs:label "dissent" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@distal> a owl:Class ; + rdfs:label "distal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "far from the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_negative> a owl:Class ; + rdfs:label "double negative" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Grammar construction that can be used as an expression and it is the repetition of negative words" . + +<https://unl.tetras-libre.fr/rdf/schema#@double_parenthesis> a owl:Class ; + rdfs:label "double parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@double_quote> a owl:Class ; + rdfs:label "double quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@doubt> a owl:Class ; + rdfs:label "doubt" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@down> a owl:Class ; + rdfs:label "down" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@dual> a owl:Class ; + rdfs:label "dual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@due_to> a owl:Class ; + rdfs:label "due to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@during> a owl:Class ; + rdfs:label "during" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@dysphemism> a owl:Class ; + rdfs:label "dysphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a harsher, more offensive, or more disagreeable term for another. Opposite of euphemism" . + +<https://unl.tetras-libre.fr/rdf/schema#@each> a owl:Class ; + rdfs:label "each" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@either> a owl:Class ; + rdfs:label "either" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@ellipsis> a owl:Class ; + rdfs:label "ellipsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "omission of words" . + +<https://unl.tetras-libre.fr/rdf/schema#@emphasis> a owl:Class ; + rdfs:label "emphasis" ; + rdfs:subClassOf unl:positive ; + skos:definition "emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@enough> a owl:Class ; + rdfs:label "enough" ; + rdfs:subClassOf unl:positive ; + skos:definition "sufficiently (enough)" . + +<https://unl.tetras-libre.fr/rdf/schema#@entire> a owl:Class ; + rdfs:label "entire" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@entry> a owl:Class ; + rdfs:label "entry" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "sentence head" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanalepsis> a owl:Class ; + rdfs:label "epanalepsis" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of the initial word or words of a clause or sentence at the end of the clause or sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@epanorthosis> a owl:Class ; + rdfs:label "epanorthosis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Immediate and emphatic self-correction, often following a slip of the tongue" . + +<https://unl.tetras-libre.fr/rdf/schema#@equal> a owl:Class ; + rdfs:label "equal" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of equality" . + +<https://unl.tetras-libre.fr/rdf/schema#@equivalent> a owl:Class ; + rdfs:label "equivalent" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@euphemism> a owl:Class ; + rdfs:label "euphemism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a less offensive or more agreeable term for another" . + +<https://unl.tetras-libre.fr/rdf/schema#@even> a owl:Class ; + rdfs:label "even" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@even.@if> a owl:Class ; + rdfs:label "even.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except> a owl:Class ; + rdfs:label "except" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except.@if> a owl:Class ; + rdfs:label "except.@if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@except_for> a owl:Class ; + rdfs:label "except for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exclamation> a owl:Class ; + rdfs:label "exclamation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@excluding> a owl:Class ; + rdfs:label "excluding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@exhortation> a owl:Class ; + rdfs:label "exhortation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@expectation> a owl:Class ; + rdfs:label "expectation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@experiential> a owl:Class ; + rdfs:label "experiential" ; + rdfs:subClassOf unl:aspect ; + skos:definition "experience" . + +<https://unl.tetras-libre.fr/rdf/schema#@extra> a owl:Class ; + rdfs:label "extra" ; + rdfs:subClassOf unl:positive ; + skos:definition "excessively (too)" . + +<https://unl.tetras-libre.fr/rdf/schema#@failing> a owl:Class ; + rdfs:label "failing" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@familiar> a owl:Class ; + rdfs:label "familiar" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@far> a owl:Class ; + rdfs:label "far" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@fear> a owl:Class ; + rdfs:label "fear" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@female> a owl:Class ; + rdfs:label "female" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@focus> a owl:Class ; + rdfs:label "focus" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "information that is contrary to the presuppositions of the interlocutor" . + +<https://unl.tetras-libre.fr/rdf/schema#@following> a owl:Class ; + rdfs:label "following" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@for> a owl:Class ; + rdfs:label "for" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@from> a owl:Class ; + rdfs:label "from" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@front> a owl:Class ; + rdfs:label "front" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@future> a owl:Class ; + rdfs:label "future" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time after the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@generic> a owl:Class ; + rdfs:label "generic" ; + rdfs:subClassOf unl:quantification ; + skos:definition "no quantification" . + +<https://unl.tetras-libre.fr/rdf/schema#@given> a owl:Class ; + rdfs:label "given" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@habitual> a owl:Class ; + rdfs:label "habitual" ; + rdfs:subClassOf unl:aspect ; + skos:definition "habitual" . + +<https://unl.tetras-libre.fr/rdf/schema#@half> a owl:Class ; + rdfs:label "half" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@hesitation> a owl:Class ; + rdfs:label "hesitation" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@hope> a owl:Class ; + rdfs:label "hope" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@hyperbole> a owl:Class ; + rdfs:label "hyperbole" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of exaggerated terms for emphasis" . + +<https://unl.tetras-libre.fr/rdf/schema#@hypothesis> a owl:Class ; + rdfs:label "hypothesis" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@if> a owl:Class ; + rdfs:label "if" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@if.@only> a owl:Class ; + rdfs:label "if.@only" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@imperfective> a owl:Class ; + rdfs:label "imperfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "uncompleted" . + +<https://unl.tetras-libre.fr/rdf/schema#@in> a owl:Class ; + rdfs:label "in" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@in_accordance_with> a owl:Class ; + rdfs:label "in accordance with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_addition_to> a owl:Class ; + rdfs:label "in addition to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case> a owl:Class ; + rdfs:label "in case" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_case_of> a owl:Class ; + rdfs:label "in case of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_favor_of> a owl:Class ; + rdfs:label "in favor of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_place_of> a owl:Class ; + rdfs:label "in place of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@in_spite_of> a owl:Class ; + rdfs:label "in spite of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inceptive> a owl:Class ; + rdfs:label "inceptive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "beginning" . + +<https://unl.tetras-libre.fr/rdf/schema#@inchoative> a owl:Class ; + rdfs:label "inchoative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "change of state" . + +<https://unl.tetras-libre.fr/rdf/schema#@including> a owl:Class ; + rdfs:label "including" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@inferior> a owl:Class ; + rdfs:label "inferior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@inside> a owl:Class ; + rdfs:label "inside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@instead_of> a owl:Class ; + rdfs:label "instead of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@intention> a owl:Class ; + rdfs:label "intention" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interrogation> a owl:Class ; + rdfs:label "interrogation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@interruption> a owl:Class ; + rdfs:label "interruption" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "insertion of a clause or sentence in a place where it interrupts the natural flow of the sentence" . + +<https://unl.tetras-libre.fr/rdf/schema#@intimate> a owl:Class ; + rdfs:label "intimate" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@invitation> a owl:Class ; + rdfs:label "invitation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@irony> a owl:Class ; + rdfs:label "irony" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of word in a way that conveys a meaning opposite to its usual meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@iterative> a owl:Class ; + rdfs:label "iterative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "repetition" . + +<https://unl.tetras-libre.fr/rdf/schema#@jargon> a owl:Class ; + rdfs:label "jargon" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@judgement> a owl:Class ; + rdfs:label "judgement" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@least> a owl:Class ; + rdfs:label "least" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@left> a owl:Class ; + rdfs:label "left" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@less> a owl:Class ; + rdfs:label "less" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of inferiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@like> a owl:Class ; + rdfs:label "like" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@literary> a owl:Class ; + rdfs:label "literary" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@majority> a owl:Class ; + rdfs:label "majority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a major part" . + +<https://unl.tetras-libre.fr/rdf/schema#@male> a owl:Class ; + rdfs:label "male" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@maybe> a owl:Class ; + rdfs:label "maybe" ; + rdfs:subClassOf unl:polarity ; + skos:definition "dubitative" . + +<https://unl.tetras-libre.fr/rdf/schema#@medial> a owl:Class ; + rdfs:label "medial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@metaphor> a owl:Class ; + rdfs:label "metaphor" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Stating one entity is another for the purpose of comparing them in quality" . + +<https://unl.tetras-libre.fr/rdf/schema#@metonymy> a owl:Class ; + rdfs:label "metonymy" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Substitution of a word to suggest what is really meant" . + +<https://unl.tetras-libre.fr/rdf/schema#@minority> a owl:Class ; + rdfs:label "minority" ; + rdfs:subClassOf unl:quantification ; + skos:definition "a minor part" . + +<https://unl.tetras-libre.fr/rdf/schema#@minus> a owl:Class ; + rdfs:label "minus" ; + rdfs:subClassOf unl:positive ; + skos:definition "downtoned (a little)" . + +<https://unl.tetras-libre.fr/rdf/schema#@more> a owl:Class ; + rdfs:label "more" ; + rdfs:subClassOf unl:comparative ; + skos:definition "comparative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@most> a owl:Class ; + rdfs:label "most" ; + rdfs:subClassOf unl:superlative ; + skos:definition "superlative of superiority" . + +<https://unl.tetras-libre.fr/rdf/schema#@multal> a owl:Class ; + rdfs:label "multal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@narrative> a owl:Class ; + rdfs:label "narrative" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@near> a owl:Class ; + rdfs:label "near" ; + rdfs:subClassOf unl:position . + +<https://unl.tetras-libre.fr/rdf/schema#@necessity> a owl:Class ; + rdfs:label "necessity" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@neither> a owl:Class ; + rdfs:label "neither" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@neutral> a owl:Class ; + rdfs:label "neutral" ; + rdfs:subClassOf unl:gender . + +<https://unl.tetras-libre.fr/rdf/schema#@no> a owl:Class ; + rdfs:label "no" ; + rdfs:subClassOf unl:quantification ; + skos:definition "none" . + +<https://unl.tetras-libre.fr/rdf/schema#@not> a owl:Class ; + rdfs:label "not" ; + rdfs:subClassOf unl:polarity ; + skos:definition "negative" . + +<https://unl.tetras-libre.fr/rdf/schema#@notwithstanding> a owl:Class ; + rdfs:label "notwithstanding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@noun> a owl:Class ; + rdfs:label "noun" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@obligation> a owl:Class ; + rdfs:label "obligation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@of> a owl:Class ; + rdfs:label "of" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@off> a owl:Class ; + rdfs:label "off" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on> a owl:Class ; + rdfs:label "on" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@on_account_of> a owl:Class ; + rdfs:label "on account of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@on_behalf_of> a owl:Class ; + rdfs:label "on behalf of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@one> a owl:Class ; + rdfs:label "1" ; + rdfs:subClassOf unl:person ; + skos:definition "first person speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@only> a owl:Class ; + rdfs:label "only" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@onomatopoeia> a owl:Class ; + rdfs:label "onomatopoeia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Words that sound like their meaning" . + +<https://unl.tetras-libre.fr/rdf/schema#@opinion> a owl:Class ; + rdfs:label "opinion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@opposite> a owl:Class ; + rdfs:label "opposite" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@or> a owl:Class ; + rdfs:label "or" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@ordinal> a owl:Class ; + rdfs:label "ordinal" ; + rdfs:subClassOf unl:specification . + +<https://unl.tetras-libre.fr/rdf/schema#@other> a owl:Class ; + rdfs:label "other" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@outside> a owl:Class ; + rdfs:label "outside" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@over> a owl:Class ; + rdfs:label "over" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@owing_to> a owl:Class ; + rdfs:label "owing to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@own> a owl:Class ; + rdfs:label "own" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@oxymoron> a owl:Class ; + rdfs:label "oxymoron" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using two terms together, that normally contradict each other" . + +<https://unl.tetras-libre.fr/rdf/schema#@pace> a owl:Class ; + rdfs:label "pace" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@pain> a owl:Class ; + rdfs:label "pain" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@paradox> a owl:Class ; + rdfs:label "paradox" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Use of apparently contradictory ideas to point out some underlying truth" . + +<https://unl.tetras-libre.fr/rdf/schema#@parallelism> a owl:Class ; + rdfs:label "parallelism" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "use of similar structures in two or more clauses" . + +<https://unl.tetras-libre.fr/rdf/schema#@parenthesis> a owl:Class ; + rdfs:label "parenthesis" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@paronomasia> a owl:Class ; + rdfs:label "paronomasia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "A form of pun, in which words similar in sound but with different meanings are used" . + +<https://unl.tetras-libre.fr/rdf/schema#@part> a owl:Class ; + rdfs:label "part" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@passive> a owl:Class ; + rdfs:label "passive" ; + rdfs:subClassOf unl:voice ; + skos:definition "This house was built in 1895." . + +<https://unl.tetras-libre.fr/rdf/schema#@past> a owl:Class ; + rdfs:label "past" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at a time before the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@paucal> a owl:Class ; + rdfs:label "paucal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@pejorative> a owl:Class ; + rdfs:label "pejorative" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@per> a owl:Class ; + rdfs:label "per" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@perfect> a owl:Class ; + rdfs:label "perfect" ; + rdfs:subClassOf unl:aspect ; + skos:definition "perfect" . + +<https://unl.tetras-libre.fr/rdf/schema#@perfective> a owl:Class ; + rdfs:label "perfective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "completed" . + +<https://unl.tetras-libre.fr/rdf/schema#@periphrasis> a owl:Class ; + rdfs:label "periphrasis" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Using several words instead of few" . + +<https://unl.tetras-libre.fr/rdf/schema#@permission> a owl:Class ; + rdfs:label "permission" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@permissive> a owl:Class ; + rdfs:label "permissive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "permissive" . + +<https://unl.tetras-libre.fr/rdf/schema#@persistent> a owl:Class ; + rdfs:label "persistent" ; + rdfs:subClassOf unl:aspect ; + skos:definition "persistent" . + +<https://unl.tetras-libre.fr/rdf/schema#@person> a owl:Class ; + rdfs:label "person" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@pleonasm> a owl:Class ; + rdfs:label "pleonasm" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "Use of superfluous or redundant words" . + +<https://unl.tetras-libre.fr/rdf/schema#@plus> a owl:Class ; + rdfs:label "plus" ; + rdfs:subClassOf unl:positive ; + skos:definition "intensified (very)" . + +<https://unl.tetras-libre.fr/rdf/schema#@polite> a owl:Class ; + rdfs:label "polite" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@polyptoton> a owl:Class ; + rdfs:label "polyptoton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of words derived from the same root" . + +<https://unl.tetras-libre.fr/rdf/schema#@polysyndeton> a owl:Class ; + rdfs:label "polysyndeton" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "repetition of conjunctions" . + +<https://unl.tetras-libre.fr/rdf/schema#@possibility> a owl:Class ; + rdfs:label "possibility" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@posterior> a owl:Class ; + rdfs:label "posterior" ; + rdfs:subClassOf unl:relative_tense ; + skos:definition "after some other time other than the time of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@prediction> a owl:Class ; + rdfs:label "prediction" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@present> a owl:Class ; + rdfs:label "present" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "at the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@presumption> a owl:Class ; + rdfs:label "presumption" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prior_to> a owl:Class ; + rdfs:label "prior to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@probability> a owl:Class ; + rdfs:label "probability" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@progressive> a owl:Class ; + rdfs:label "progressive" ; + rdfs:subClassOf unl:aspect ; + skos:definition "ongoing" . + +<https://unl.tetras-libre.fr/rdf/schema#@prohibition> a owl:Class ; + rdfs:label "prohibition" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@promise> a owl:Class ; + rdfs:label "promise" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@prospective> a owl:Class ; + rdfs:label "prospective" ; + rdfs:subClassOf unl:aspect ; + skos:definition "imminent" . + +<https://unl.tetras-libre.fr/rdf/schema#@proximal> a owl:Class ; + rdfs:label "proximal" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> ; + skos:definition "near the speaker" . + +<https://unl.tetras-libre.fr/rdf/schema#@pursuant_to> a owl:Class ; + rdfs:label "pursuant to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@qua> a owl:Class ; + rdfs:label "qua" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@quadrual> a owl:Class ; + rdfs:label "quadrual" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@recent> a owl:Class ; + rdfs:label "recent" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "close to the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@reciprocal> a owl:Class ; + rdfs:label "reciprocal" ; + rdfs:subClassOf unl:voice ; + skos:definition "They killed each other." . + +<https://unl.tetras-libre.fr/rdf/schema#@reflexive> a owl:Class ; + rdfs:label "reflexive" ; + rdfs:subClassOf unl:voice ; + skos:definition "He killed himself." . + +<https://unl.tetras-libre.fr/rdf/schema#@regarding> a owl:Class ; + rdfs:label "regarding" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regardless_of> a owl:Class ; + rdfs:label "regardless of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@regret> a owl:Class ; + rdfs:label "regret" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@relative> a owl:Class ; + rdfs:label "relative" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "relative clause head" . + +<https://unl.tetras-libre.fr/rdf/schema#@relief> a owl:Class ; + rdfs:label "relief" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@remote> a owl:Class ; + rdfs:label "remote" ; + rdfs:subClassOf unl:absolute_tense ; + skos:definition "remote from the moment of utterance" . + +<https://unl.tetras-libre.fr/rdf/schema#@repetition> a owl:Class ; + rdfs:label "repetition" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Repeated usage of word(s)/group of words in the same sentence to create a poetic/rhythmic effect" . + +<https://unl.tetras-libre.fr/rdf/schema#@request> a owl:Class ; + rdfs:label "request" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@result> a owl:Class ; + rdfs:label "result" ; + rdfs:subClassOf unl:aspect ; + skos:definition "result" . + +<https://unl.tetras-libre.fr/rdf/schema#@reverential> a owl:Class ; + rdfs:label "reverential" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@right> a owl:Class ; + rdfs:label "right" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@round> a owl:Class ; + rdfs:label "round" ; + rdfs:subClassOf unl:nominal_attributes . + +<https://unl.tetras-libre.fr/rdf/schema#@same> a owl:Class ; + rdfs:label "same" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@save> a owl:Class ; + rdfs:label "save" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@side> a owl:Class ; + rdfs:label "side" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@since> a owl:Class ; + rdfs:label "since" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@single_quote> a owl:Class ; + rdfs:label "single quote" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@singular> a owl:Class ; + rdfs:label "singular" ; + rdfs:subClassOf unl:quantification ; + skos:definition "default" . + +<https://unl.tetras-libre.fr/rdf/schema#@slang> a owl:Class ; + rdfs:label "slang" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@so> a owl:Class ; + rdfs:label "so" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@speculation> a owl:Class ; + rdfs:label "speculation" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@speech> a owl:Class ; + rdfs:label "speech" ; + rdfs:subClassOf unl:syntactic_structures ; + skos:definition "direct speech" . + +<https://unl.tetras-libre.fr/rdf/schema#@square_bracket> a owl:Class ; + rdfs:label "square bracket" ; + rdfs:subClassOf unl:conventions . + +<https://unl.tetras-libre.fr/rdf/schema#@subsequent_to> a owl:Class ; + rdfs:label "subsequent to" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@such> a owl:Class ; + rdfs:label "such" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@def> . + +<https://unl.tetras-libre.fr/rdf/schema#@suggestion> a owl:Class ; + rdfs:label "suggestion" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@superior> a owl:Class ; + rdfs:label "superior" ; + rdfs:subClassOf unl:social_deixis . + +<https://unl.tetras-libre.fr/rdf/schema#@surprise> a owl:Class ; + rdfs:label "surprise" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@symploce> a owl:Class ; + rdfs:label "symploce" ; + rdfs:subClassOf unl:Schemes ; + skos:definition "combination of anaphora and epistrophe" . + +<https://unl.tetras-libre.fr/rdf/schema#@synecdoche> a owl:Class ; + rdfs:label "synecdoche" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Form of metonymy, in which a part stands for the whole" . + +<https://unl.tetras-libre.fr/rdf/schema#@synesthesia> a owl:Class ; + rdfs:label "synesthesia" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Description of one kind of sense impression by using words that normally describe another." . + +<https://unl.tetras-libre.fr/rdf/schema#@taboo> a owl:Class ; + rdfs:label "taboo" ; + rdfs:subClassOf unl:register . + +<https://unl.tetras-libre.fr/rdf/schema#@terminative> a owl:Class ; + rdfs:label "terminative" ; + rdfs:subClassOf unl:aspect ; + skos:definition "cessation" . + +<https://unl.tetras-libre.fr/rdf/schema#@than> a owl:Class ; + rdfs:label "than" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thanks_to> a owl:Class ; + rdfs:label "thanks to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@that_of> a owl:Class ; + rdfs:label "that of" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@thing> a owl:Class ; + rdfs:label "thing" ; + rdfs:subClassOf unl:animacy . + +<https://unl.tetras-libre.fr/rdf/schema#@threat> a owl:Class ; + rdfs:label "threat" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@three> a owl:Class ; + rdfs:label "3" ; + rdfs:subClassOf unl:person ; + skos:definition "third person" . + +<https://unl.tetras-libre.fr/rdf/schema#@through> a owl:Class ; + rdfs:label "through" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@throughout> a owl:Class ; + rdfs:label "throughout" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@times> a owl:Class ; + rdfs:label "times" ; + rdfs:subClassOf unl:quantification ; + skos:definition "multiplicative" . + +<https://unl.tetras-libre.fr/rdf/schema#@title> a owl:Class ; + rdfs:label "title" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@to> a owl:Class ; + rdfs:label "to" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@top> a owl:Class ; + rdfs:label "top" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@topic> a owl:Class ; + rdfs:label "topic" ; + rdfs:subClassOf unl:information_structure ; + skos:definition "what is being talked about" . + +<https://unl.tetras-libre.fr/rdf/schema#@towards> a owl:Class ; + rdfs:label "towards" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@trial> a owl:Class ; + rdfs:label "trial" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@pl> . + +<https://unl.tetras-libre.fr/rdf/schema#@tuple> a owl:Class ; + rdfs:label "tuple" ; + rdfs:subClassOf unl:quantification ; + skos:definition "collective" . + +<https://unl.tetras-libre.fr/rdf/schema#@two> a owl:Class ; + rdfs:label "2" ; + rdfs:subClassOf unl:person ; + skos:definition "second person addressee" . + +<https://unl.tetras-libre.fr/rdf/schema#@under> a owl:Class ; + rdfs:label "under" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@unit> a owl:Class ; + rdfs:label "unit" ; + rdfs:subClassOf unl:quantification . + +<https://unl.tetras-libre.fr/rdf/schema#@unless> a owl:Class ; + rdfs:label "unless" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@unlike> a owl:Class ; + rdfs:label "unlike" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@until> a owl:Class ; + rdfs:label "until" ; + rdfs:subClassOf unl:other . + +<https://unl.tetras-libre.fr/rdf/schema#@up> a owl:Class ; + rdfs:label "up" ; + rdfs:subClassOf unl:direction . + +<https://unl.tetras-libre.fr/rdf/schema#@verb> a owl:Class ; + rdfs:label "verb" ; + rdfs:subClassOf unl:lexical_category . + +<https://unl.tetras-libre.fr/rdf/schema#@versus> a owl:Class ; + rdfs:label "versus" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@vocative> a owl:Class ; + rdfs:label "vocative" ; + rdfs:subClassOf unl:syntactic_structures . + +<https://unl.tetras-libre.fr/rdf/schema#@warning> a owl:Class ; + rdfs:label "warning" ; + rdfs:subClassOf unl:modality . + +<https://unl.tetras-libre.fr/rdf/schema#@weariness> a owl:Class ; + rdfs:label "weariness" ; + rdfs:subClassOf unl:emotions . + +<https://unl.tetras-libre.fr/rdf/schema#@wh> a owl:Class ; + rdfs:label "wh" ; + rdfs:subClassOf <https://unl.tetras-libre.fr/rdf/schema#@indef> . + +<https://unl.tetras-libre.fr/rdf/schema#@with> a owl:Class ; + rdfs:label "with" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_regard_to> a owl:Class ; + rdfs:label "with regard to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_relation_to> a owl:Class ; + rdfs:label "with relation to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@with_respect_to> a owl:Class ; + rdfs:label "with respect to" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@within> a owl:Class ; + rdfs:label "within" ; + rdfs:subClassOf unl:location . + +<https://unl.tetras-libre.fr/rdf/schema#@without> a owl:Class ; + rdfs:label "without" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@worth> a owl:Class ; + rdfs:label "worth" ; + rdfs:subClassOf unl:manner . + +<https://unl.tetras-libre.fr/rdf/schema#@yes> a owl:Class ; + rdfs:label "yes" ; + rdfs:subClassOf unl:polarity ; + skos:definition "affirmative" . + +<https://unl.tetras-libre.fr/rdf/schema#@zoomorphism> a owl:Class ; + rdfs:label "zoomorphism" ; + rdfs:subClassOf unl:Tropes ; + skos:definition "Applying animal characteristics to humans or gods" . + +unl:UNLKB_Top_Concept a owl:Class ; + rdfs:comment "Top concepts of a UNL Knoledge Base that shall not correspond to a UW." ; + rdfs:subClassOf unl:UNLKB_Node, + unl:Universal_Word . + +unl:UNL_Paragraph a owl:Class ; + rdfs:comment """For more information about UNL Paragraphs, see : +http://www.unlweb.net/wiki/UNL_document""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:and a owl:Class, + owl:ObjectProperty ; + rdfs:label "and" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "conjunction"@en ; + skos:definition "Used to state a conjunction between two entities."@en ; + skos:example """John and Mary = and(John;Mary) +both John and Mary = and(John;Mary) +neither John nor Mary = and(John;Mary) +John as well as Mary = and(John;Mary)"""@en . + +unl:ant a owl:Class, + owl:ObjectProperty ; + rdfs:label "ant" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "opposition or concession"@en ; + skos:definition "Used to indicate that two entities do not share the same meaning or reference. Also used to indicate concession."@en ; + skos:example """John is not Peter = ant(Peter;John) +3 + 2 != 6 = ant(6;3+2) +Although he's quiet, he's not shy = ant(he's not shy;he's quiet)"""@en . + +unl:bas a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas" ; + rdfs:subClassOf unl:Universal_Relation, + unl:per ; + rdfs:subPropertyOf unl:per ; + skos:altLabel "basis for a comparison" . + +unl:cnt a owl:Class, + owl:ObjectProperty ; + rdfs:label "cnt" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "content or theme"@en ; + skos:definition "The object of an stative or experiental verb, or the theme of an entity."@en ; + skos:example """John has two daughters = cnt(have;two daughters) +the book belongs to Mary = cnt(belong;Mary) +the book contains many pictures = cnt(contain;many pictures) +John believes in Mary = cnt(believe;Mary) +John saw Mary = cnt(saw;Mary) +John loves Mary = cnt(love;Mary) +The explosion was heard by everyone = cnt(hear;explosion) +a book about Peter = cnt(book;Peter)"""@en . + +unl:con a owl:Class, + owl:ObjectProperty ; + rdfs:label "con" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "condition"@en ; + skos:definition "A condition of an event."@en ; + skos:example """If I see him, I will tell him = con(I will tell him;I see him) +I will tell him if I see him = con(I will tell him;I see him)"""@en . + +unl:coo a owl:Class, + owl:ObjectProperty ; + rdfs:label "coo" ; + rdfs:subClassOf unl:Universal_Relation, + unl:dur ; + rdfs:subPropertyOf unl:dur ; + skos:altLabel "co-occurrence" . + +unl:equ a owl:Class, + owl:ObjectProperty ; + rdfs:label "equ" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "synonym or paraphrase"@en ; + skos:definition "Used to indicate that two entities share the same meaning or reference. Also used to indicate semantic apposition."@en ; + skos:example """The morning star is the evening star = equ(evening star;morning star) +3 + 2 = 5 = equ(5;3+2) +UN (United Nations) = equ(UN;United Nations) +John, the brother of Mary = equ(John;the brother of Mary)"""@en . + +unl:exp a owl:Class, + owl:ObjectProperty ; + rdfs:label "exp" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "experiencer"@en ; + skos:definition "A participant in an action or process who receives a sensory impression or is the locus of an experiential event."@en ; + skos:example """John believes in Mary = exp(believe;John) +John saw Mary = exp(saw;John) +John loves Mary = exp(love;John) +The explosion was heard by everyone = exp(hear;everyone)"""@en . + +unl:fld a owl:Class, + owl:ObjectProperty ; + rdfs:label "fld" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "field"@en ; + skos:definition "Used to indicate the semantic domain of an entity."@en ; + skos:example "sentence (linguistics) = fld(sentence;linguistics)"@en . + +unl:gol a owl:Class, + owl:ObjectProperty ; + rdfs:label "gol" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "final state, place, destination or recipient"@en ; + skos:definition "The final state, place, destination or recipient of an entity or event."@en ; + skos:example """John received the book = gol(received;John) +John won the prize = gol(won;John) +John changed from poor to rich = gol(changed;rich) +John gave the book to Mary = gol(gave;Mary) +He threw the book at me = gol(threw;me) +John goes to NY = gol(go;NY) +train to NY = gol(train;NY)"""@en . + +unl:has_attribute a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:attribute ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_id a owl:AnnotationProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_index a owl:DatatypeProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range xsd:integer ; + rdfs:subPropertyOf unl:unlDatatypeProperty . + +unl:has_master_definition a owl:AnnotationProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range xsd:string ; + rdfs:subPropertyOf unl:unlAnnotationProperty . + +unl:has_scope a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Scope ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_scope_of . + +unl:has_source a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:equivalentProperty unl:is_source_of . + +unl:has_target a owl:ObjectProperty ; + rdfs:domain unl:Universal_Relation ; + rdfs:range unl:UNL_Node ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_target_of . + +unl:icl a owl:Class, + owl:ObjectProperty ; + rdfs:label "icl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "hyponymy, is a kind of"@en ; + skos:definition "Used to refer to a subclass of a class."@en ; + skos:example "Dogs are mammals = icl(mammal;dogs)"@en . + +unl:iof a owl:Class, + owl:ObjectProperty ; + rdfs:label "iof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is an instance of"@en ; + skos:definition "Used to refer to an instance or individual element of a class."@en ; + skos:example "John is a human being = iof(human being;John)"@en . + +unl:is_substructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_superstructure_of . + +unl:lpl a owl:Class, + owl:ObjectProperty ; + rdfs:label "lpl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "logical place"@en ; + skos:definition "A non-physical place where an entity or event occurs or a state exists."@en ; + skos:example """John works in politics = lpl(works;politics) +John is in love = lpl(John;love) +officer in command = lpl(officer;command)"""@en . + +unl:mat a owl:Class, + owl:ObjectProperty ; + rdfs:label "mat" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "material"@en ; + skos:definition "Used to indicate the material of which an entity is made."@en ; + skos:example """A statue in bronze = mat(statue;bronze) +a wood box = mat(box;wood) +a glass mug = mat(mug;glass)"""@en . + +unl:met a owl:Class, + owl:ObjectProperty ; + rdfs:label "met" ; + rdfs:subClassOf unl:ins ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:ins ; + skos:altLabel "method" . + +unl:nam a owl:Class, + owl:ObjectProperty ; + rdfs:label "nam" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "name"@en ; + skos:definition "The name of an entity."@en ; + skos:example """The city of New York = nam(city;New York) +my friend Willy = nam(friend;Willy)"""@en . + +unl:opl a owl:Class, + owl:ObjectProperty ; + rdfs:label "opl" ; + rdfs:subClassOf unl:Universal_Relation, + unl:obj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:obj ; + skos:altLabel "objective place"@en ; + skos:definition "A place affected by an action or process."@en ; + skos:example """John was hit in the face = opl(hit;face) +John fell in the water = opl(fell;water)"""@en . + +unl:pof a owl:Class, + owl:ObjectProperty ; + rdfs:label "pof" ; + rdfs:subClassOf unl:Universal_Relation, + unl:aoj ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:aoj ; + skos:altLabel "is part of"@en ; + skos:definition "Used to refer to a part of a whole."@en ; + skos:example "John is part of the family = pof(family;John)"@en . + +unl:pos a owl:Class, + owl:ObjectProperty ; + rdfs:label "pos" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "possessor"@en ; + skos:definition "The possessor of a thing."@en ; + skos:example """the book of John = pos(book;John) +John's book = pos(book;John) +his book = pos(book;he)"""@en . + +unl:ptn a owl:Class, + owl:ObjectProperty ; + rdfs:label "ptn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "partner"@en ; + skos:definition "A secondary (non-focused) participant in an event."@en ; + skos:example """John fights with Peter = ptn(fight;Peter) +John wrote the letter with Peter = ptn(wrote;Peter) +John lives with Peter = ptn(live;Peter)"""@en . + +unl:pur a owl:Class, + owl:ObjectProperty ; + rdfs:label "pur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "purpose"@en ; + skos:definition "The purpose of an entity or event."@en ; + skos:example """John left early in order to arrive early = pur(John left early;arrive early) +You should come to see us = pur(you should come;see us) +book for children = pur(book;children)"""@en . + +unl:qua a owl:Class, + owl:ObjectProperty ; + rdfs:label "qua" ; + rdfs:subClassOf unl:Universal_Relation, + unl:mod ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:mod ; + skos:altLabel "quantity"@en ; + skos:definition "Used to express the quantity of an entity."@en ; + skos:example """two books = qua(book;2) +a group of students = qua(students;group)"""@en . + +unl:rsn a owl:Class, + owl:ObjectProperty ; + rdfs:label "rsn" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "reason"@en ; + skos:definition "The reason of an entity or event."@en ; + skos:example """John left because it was late = rsn(John left;it was late) +John killed Mary because of John = rsn(killed;John)"""@en . + +unl:seq a owl:Class, + owl:ObjectProperty ; + rdfs:label "seq" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "consequence"@en ; + skos:definition "Used to express consequence."@en ; + skos:example "I think therefore I am = seq(I think;I am)"@en . + +unl:src a owl:Class, + owl:ObjectProperty ; + rdfs:label "src" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "initial state, place, origin or source"@en ; + skos:definition "The initial state, place, origin or source of an entity or event."@en ; + skos:example """John came from NY = src(came;NY) +John is from NY = src(John;NY) +train from NY = src(train;NY) +John changed from poor into rich = src(changed;poor) +John received the book from Peter = src(received;Peter) +John withdrew the money from the cashier = src(withdrew;cashier)"""@en . + +unl:tmf a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmf" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "initial time"@en ; + skos:definition "The initial time of an entity or event."@en ; + skos:example "John worked since early = tmf(worked;early)"@en . + +unl:tmt a owl:Class, + owl:ObjectProperty ; + rdfs:label "tmt" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "final time"@en ; + skos:definition "The final time of an entity or event."@en ; + skos:example "John worked until late = tmt(worked;late)"@en . + +unl:via a owl:Class, + owl:ObjectProperty ; + rdfs:label "bas", + "met", + "via" ; + rdfs:subClassOf unl:Universal_Relation, + unl:plc ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:plc ; + skos:altLabel "intermediate state or place"@en ; + skos:definition "The intermediate place or state of an entity or event."@en ; + skos:example """John went from NY to Geneva through Paris = via(went;Paris) +The baby crawled across the room = via(crawled;across the room)"""@en . + +dash:ActionGroup a dash:ShapeClass ; + rdfs:label "Action group" ; + rdfs:comment "A group of ResourceActions, used to arrange items in menus etc. Similar to sh:PropertyGroups, they may have a sh:order and should have labels (in multiple languages if applicable)." ; + rdfs:subClassOf rdfs:Resource . + +dash:AllObjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All objects target" ; + rdfs:comment "A target containing all objects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allObjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All objects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?anyS ?anyP ?this . +}""" . + +dash:AllSubjectsTarget a sh:JSTargetType, + sh:SPARQLTargetType ; + rdfs:label "All subjects target" ; + rdfs:comment "A target containing all subjects in the data graph as focus nodes." ; + rdfs:subClassOf sh:Target ; + sh:jsFunctionName "dash_allSubjects" ; + sh:jsLibrary dash:DASHJSLibrary ; + sh:labelTemplate "All subjects" ; + sh:prefixes <http://datashapes.org/dash> ; + sh:select """SELECT DISTINCT ?this +WHERE { + ?this ?anyP ?anyO . +}""" . + +dash:ClosedByTypesConstraintComponent-closedByTypes a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to indicate that the focus nodes are closed by their types. A constraint violation is reported for each property value of the focus node where the property is not among those that are explicitly declared via sh:property/sh:path in any of the rdf:types of the focus node (and their superclasses). The property rdf:type is always permitted." ; + sh:maxCount 1 ; + sh:path dash:closedByTypes . + +dash:CoExistsWithConstraintComponent-coExistsWith a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "The properties that must co-exist with the surrounding property (path). If the surrounding property path has any value then the given property must also have a value, and vice versa." ; + sh:name "co-exists with" ; + sh:nodeKind sh:IRI ; + sh:path dash:coExistsWith . + +dash:ConstraintReificationShape-message a sh:PropertyShape ; + dash:singleLine true ; + sh:name "messages" ; + sh:nodeKind sh:Literal ; + sh:or dash:StringOrLangString ; + sh:path sh:message . + +dash:ConstraintReificationShape-severity a sh:PropertyShape ; + sh:class sh:Severity ; + sh:maxCount 1 ; + sh:name "severity" ; + sh:nodeKind sh:IRI ; + sh:path sh:severity . + +dash:GraphValidationTestCase a dash:ShapeClass ; + rdfs:label "Graph validation test case" ; + rdfs:comment "A test case that performs SHACL constraint validation on the whole graph and compares the results with the expected validation results stored with the test case. By default this excludes meta-validation (i.e. the validation of the shape definitions themselves). If that's desired, set dash:validateShapes to true." ; + rdfs:subClassOf dash:ValidationTestCase . + +dash:HasValueInConstraintComponent-hasValueIn a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:description "At least one of the value nodes must be a member of the given list." ; + sh:name "has value in" ; + sh:node dash:ListShape ; + sh:path dash:hasValueIn . + +dash:HasValueWithClassConstraintComponent-hasValueWithClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "One of the values of the property path must be an instance of the given class." ; + sh:name "has value with class" ; + sh:nodeKind sh:IRI ; + sh:path dash:hasValueWithClass . + +dash:IndexedConstraintComponent-indexed a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to activate indexing for this property." ; + sh:maxCount 1 ; + sh:name "indexed" ; + sh:path dash:indexed . + +dash:ListNodeShape a sh:NodeShape ; + rdfs:label "List node shape" ; + rdfs:comment "Defines constraints on what it means for a node to be a node within a well-formed RDF list. Note that this does not check whether the rdf:rest items are also well-formed lists as this would lead to unsupported recursion." ; + sh:or ( [ sh:hasValue () ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 0 ; + sh:path rdf:rest ] ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:first ], + [ a sh:PropertyShape ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path rdf:rest ] ] ) . + +dash:ListShape a sh:NodeShape ; + rdfs:label "List shape" ; + rdfs:comment """Defines constraints on what it means for a node to be a well-formed RDF list. + +The focus node must either be rdf:nil or not recursive. Furthermore, this shape uses dash:ListNodeShape as a "helper" to walk through all members of the whole list (including itself).""" ; + sh:or ( [ sh:hasValue () ] [ sh:not [ sh:hasValue () ] ; + sh:property [ a sh:PropertyShape ; + dash:nonRecursive true ; + sh:path [ sh:oneOrMorePath rdf:rest ] ] ] ) ; + sh:property [ a sh:PropertyShape ; + rdfs:comment "Each list member (including this node) must be have the shape dash:ListNodeShape." ; + sh:node dash:ListNodeShape ; + sh:path [ sh:zeroOrMorePath rdf:rest ] ] . + +dash:MultiViewer a dash:ShapeClass ; + rdfs:label "Multi viewer" ; + rdfs:comment "A viewer for multiple/all values at once." ; + rdfs:subClassOf dash:Viewer . + +dash:NonRecursiveConstraintComponent-nonRecursive a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description """Used to state that a property or path must not point back to itself. + +For example, "a person cannot have itself as parent" can be expressed by setting dash:nonRecursive=true for a given sh:path. + +To express that a person cannot have itself among any of its (recursive) parents, use a sh:path with the + operator such as ex:parent+.""" ; + sh:maxCount 1 ; + sh:name "non-recursive" ; + sh:path dash:nonRecursive . + +dash:ParameterConstraintComponent-parameter a sh:Parameter ; + sh:path sh:parameter . + +dash:PrimaryKeyConstraintComponent-uriStart a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "The start of the URIs of well-formed resources. If specified then the associated property/path serves as \"primary key\" for all target nodes (instances). All such target nodes need to have a URI that starts with the given string, followed by the URI-encoded value of the primary key property." ; + sh:maxCount 1 ; + sh:name "URI start" ; + sh:path dash:uriStart . + +dash:RDFQueryJSLibrary a sh:JSLibrary ; + rdfs:label "rdfQuery JavaScript Library" ; + sh:jsLibraryURL "http://datashapes.org/js/rdfquery.js"^^xsd:anyURI . + +dash:ReifiableByConstraintComponent-reifiableBy a sh:Parameter ; + sh:class sh:NodeShape ; + sh:description "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Also, SHACL validators can use it to determine how to validate reified triples. Use dash:None to indicate that no reification should be permitted." ; + sh:maxCount 1 ; + sh:name "reifiable by" ; + sh:nodeKind sh:IRI ; + sh:path dash:reifiableBy . + +dash:RootClassConstraintComponent-rootClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "The root class." ; + sh:name "root class" ; + sh:nodeKind sh:IRI ; + sh:path dash:rootClass . + +dash:ScriptConstraint a dash:ShapeClass ; + rdfs:label "Script constraint" ; + rdfs:comment """The class of constraints that are based on Scripts. Depending on whether dash:onAllValues is set to true, these scripts can access the following pre-assigned variables: + +- focusNode: the focus node of the constraint (a NamedNode) +- if dash:onAllValues is not true: value: the current value node (e.g. a JavaScript string for xsd:string literals, a number for numeric literals or true or false for xsd:boolean literals. All other literals become LiteralNodes, and non-literals become instances of NamedNode) +- if dash:onAllValues is true: values: an array of current value nodes, as above. + +If the expression returns an array then each array member will be mapped to one validation result, following the mapping rules below. + +For string results, a validation result will use the string as sh:message. +For boolean results, a validation result will be produced if the result is false (true means no violation). + +For object results, a validation result will be produced using the value of the field "message" of the object as result message. If the field "value" has a value then this will become the sh:value in the violation. + +Unless another sh:message has been directly returned, the sh:message of the dash:ScriptConstraint will be used, similar to sh:message at SPARQL Constraints. These sh:messages can access the values {$focusNode}, ${value} etc as template variables.""" ; + rdfs:subClassOf dash:Script . + +dash:ScriptConstraintComponent-scriptConstraint a sh:Parameter ; + sh:class dash:ScriptConstraint ; + sh:description "The Script constraint(s) to apply." ; + sh:name "script constraint" ; + sh:path dash:scriptConstraint . + +dash:SingleLineConstraintComponent-singleLine a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "True to state that the lexical form of literal value nodes must not contain any line breaks. False to state that line breaks are explicitly permitted." ; + sh:group tosh:StringConstraintsPropertyGroup ; + sh:maxCount 1 ; + sh:name "single line" ; + sh:order 30.0 ; + sh:path dash:singleLine . + +dash:StemConstraintComponent-stem a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:string ; + sh:description "If specified then every value node must be an IRI and the IRI must start with the given string value." ; + sh:maxCount 1 ; + sh:name "stem" ; + sh:path dash:stem . + +dash:StringOrLangString a rdf:List ; + rdfs:label "String or langString" ; + rdf:first [ sh:datatype xsd:string ] ; + rdf:rest ( [ sh:datatype rdf:langString ] ) ; + rdfs:comment "An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property must be either xsd:string or rdf:langString." . + +dash:SubSetOfConstraintComponent-subSetOf a sh:Parameter ; + dash:editor dash:PropertyAutoCompleteEditor ; + dash:reifiableBy dash:ConstraintReificationShape ; + dash:viewer dash:PropertyLabelViewer ; + sh:description "Can be used to state that all value nodes must also be values of a specified other property at the same focus node." ; + sh:name "sub-set of" ; + sh:nodeKind sh:IRI ; + sh:path dash:subSetOf . + +dash:SymmetricConstraintComponent-symmetric a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:datatype xsd:boolean ; + sh:description "If set to true then if A relates to B then B must relate to A." ; + sh:maxCount 1 ; + sh:name "symmetric" ; + sh:path dash:symmetric . + +dash:UniqueValueForClassConstraintComponent-uniqueValueForClass a sh:Parameter ; + dash:reifiableBy dash:ConstraintReificationShape ; + sh:class rdfs:Class ; + sh:description "States that the values of the property must be unique for all instances of a given class (and its subclasses)." ; + sh:name "unique value for class" ; + sh:nodeKind sh:IRI ; + sh:path dash:uniqueValueForClass . + +dash:ValidationTestCase a dash:ShapeClass ; + rdfs:label "Validation test case" ; + dash:abstract true ; + rdfs:comment "Abstract superclass for test cases concerning SHACL constraint validation. Future versions may add new kinds of validatin test cases, e.g. to validate a single resource only." ; + rdfs:subClassOf dash:TestCase . + +dash:closedByTypes a rdf:Property ; + rdfs:label "closed by types" . + +dash:coExistsWith a rdf:Property ; + rdfs:label "co-exists with" ; + rdfs:comment "Specifies a property that must have a value whenever the property path has a value, and must have no value whenever the property path has no value." ; + rdfs:range rdf:Property . + +dash:hasClass a sh:SPARQLAskValidator ; + rdfs:label "has class" ; + sh:ask """ + ASK { + $value rdf:type/rdfs:subClassOf* $class . + } + """ ; + sh:message "Value does not have class {$class}" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxExclusive a sh:SPARQLAskValidator ; + rdfs:label "has max exclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than (<) the provided ?maxExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value < $maxExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxInclusive a sh:SPARQLAskValidator ; + rdfs:label "has max inclusive" ; + rdfs:comment "Checks whether a given node (?value) has a value less than or equal to (<=) the provided ?maxInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value <= $maxInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMaxLength a sh:SPARQLAskValidator ; + rdfs:label "has max length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given maximum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) <= $maxLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinExclusive a sh:SPARQLAskValidator ; + rdfs:label "has min exclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than (>) the provided ?minExclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value > $minExclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinInclusive a sh:SPARQLAskValidator ; + rdfs:label "has min inclusive" ; + rdfs:comment "Checks whether a given node (?value) has value greater than or equal to (>=) the provided ?minInclusive. Returns false if this cannot be determined, e.g. because values do not have comparable types." ; + sh:ask "ASK { FILTER ($value >= $minInclusive) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasMinLength a sh:SPARQLAskValidator ; + rdfs:label "has min length" ; + rdfs:comment "Checks whether a given string (?value) has a length within a given minimum string length." ; + sh:ask """ + ASK { + FILTER (STRLEN(str($value)) >= $minLength) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasNodeKind a sh:SPARQLAskValidator ; + rdfs:label "has node kind" ; + rdfs:comment "Checks whether a given node (?value) has a given sh:NodeKind (?nodeKind). For example, sh:hasNodeKind(42, sh:Literal) = true." ; + sh:ask """ + ASK { + FILTER ((isIRI($value) && $nodeKind IN ( sh:IRI, sh:BlankNodeOrIRI, sh:IRIOrLiteral ) ) || + (isLiteral($value) && $nodeKind IN ( sh:Literal, sh:BlankNodeOrLiteral, sh:IRIOrLiteral ) ) || + (isBlank($value) && $nodeKind IN ( sh:BlankNode, sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral ) )) . + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasPattern a sh:SPARQLAskValidator ; + rdfs:label "has pattern" ; + rdfs:comment "Checks whether the string representation of a given node (?value) matches a given regular expression (?pattern). Returns false if the value is a blank node." ; + sh:ask "ASK { FILTER (!isBlank($value) && IF(bound($flags), regex(str($value), $pattern, $flags), regex(str($value), $pattern))) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasRootClass a sh:SPARQLAskValidator ; + rdfs:label "has root class" ; + sh:ask """ASK { + $value rdfs:subClassOf* $rootClass . +}""" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasStem a sh:SPARQLAskValidator ; + rdfs:label "has stem" ; + rdfs:comment "Checks whether a given node is an IRI starting with a given stem." ; + sh:ask "ASK { FILTER (isIRI($value) && STRSTARTS(str($value), $stem)) }" ; + sh:prefixes <http://datashapes.org/dash> . + +dash:hasValueIn a rdf:Property ; + rdfs:label "has value in" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be a member of the given list." ; + rdfs:range rdf:List . + +dash:hasValueWithClass a rdf:Property ; + rdfs:label "has value with class" ; + rdfs:comment "Specifies a constraint that at least one of the value nodes must be an instance of a given class." ; + rdfs:range rdfs:Class . + +dash:indexed a rdf:Property ; + rdfs:domain sh:PropertyShape ; + rdfs:range xsd:boolean . + +dash:isIn a sh:SPARQLAskValidator ; + rdfs:label "is in" ; + sh:ask """ + ASK { + GRAPH $shapesGraph { + $in (rdf:rest*)/rdf:first $value . + } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isLanguageIn a sh:SPARQLAskValidator ; + rdfs:label "is language in" ; + sh:ask """ + ASK { + BIND (lang($value) AS ?valueLang) . + FILTER EXISTS { + GRAPH $shapesGraph { + $languageIn (rdf:rest*)/rdf:first ?lang . + FILTER (langMatches(?valueLang, ?lang)) + } } + } + """ ; + sh:prefixes <http://datashapes.org/dash> . + +dash:isSubClassOf-subclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) subclass." ; + sh:name "subclass" ; + sh:path dash:subclass . + +dash:isSubClassOf-superclass a sh:Parameter ; + sh:class rdfs:Class ; + sh:description "The (potential) superclass." ; + sh:name "superclass" ; + sh:order 1.0 ; + sh:path dash:superclass . + +dash:reifiableBy a rdf:Property ; + rdfs:label "reifiable by" ; + rdfs:comment "Can be used to specify the node shape that may be applied to reified statements produced by a property shape. The property shape must have a URI resource as its sh:path. The values of this property must be node shapes. User interfaces can use this information to determine which properties to present to users when reified statements are explored or edited. Use dash:None to indicate that no reification should be permitted." ; + rdfs:domain sh:PropertyShape ; + rdfs:range sh:NodeShape . + +dash:rootClass a rdf:Property ; + rdfs:label "root class" . + +dash:singleLine a rdf:Property ; + rdfs:label "single line" ; + rdfs:range xsd:boolean . + +dash:stem a rdf:Property ; + rdfs:label "stem"@en ; + rdfs:comment "Specifies a string value that the IRI of the value nodes must start with."@en ; + rdfs:range xsd:string . + +dash:subSetOf a rdf:Property ; + rdfs:label "sub set of" . + +dash:symmetric a rdf:Property ; + rdfs:label "symmetric" ; + rdfs:comment "True to declare that the associated property path is symmetric." . + +dash:uniqueValueForClass a rdf:Property ; + rdfs:label "unique value for class" . + +default3:ontology a owl:Ontology ; + owl:imports <https://unl.tetras-libre.fr/rdf/schema> . + +<http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> a unl:UW_Lexeme ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_occurrence default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +<http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> a unl:UW_Lexeme ; + rdfs:label "TRANSEC-NC" ; + unl:has_occurrence default3:occurence_TRANSEC-NC . + +<http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> a unl:UW_Lexeme ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:has_occurrence default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_occurrence default3:occurence_capacity-icl-volume-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> a unl:UW_Lexeme ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:has_occurrence default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +<http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:has_occurrence default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> a unl:UW_Lexeme ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:has_occurrence default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- . + +<http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_occurrence default3:occurence_mission-icl-assignment-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_occurrence default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> a unl:UW_Lexeme ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_occurrence default3:occurence_operator-icl-causal-agent-icl-person-- . + +<http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_occurrence default3:occurence_radio-channel-icl-communication-icl-thing-- . + +<http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> a unl:UW_Lexeme ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_occurrence default3:occurence_system-icl-instrumentality-icl-thing-- . + +rdf:object a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:object . + +rdf:predicate a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:predicate . + +rdf:subject a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:Statement ; + rdfs:subPropertyOf rdf:subject . + +rdfs:isDefinedBy a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:isDefinedBy, + rdfs:seeAlso . + +sh:SPARQLExecutable dash:abstract true . + +sh:Validator dash:abstract true . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +cts:batch_execution a owl:Class, + sh:NodeShape ; + rdfs:label "batch execution" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net, + cts:add-disjunctive-classes-from-list-net, + cts:append-domain-to-relation-net, + cts:append-range-to-relation-net, + cts:bypass-reification, + cts:complement-composite-class, + cts:compose-atom-with-list-by-mod-1, + cts:compose-atom-with-list-by-mod-2, + cts:compute-class-uri-of-net-object, + cts:compute-domain-of-relation-property, + cts:compute-instance-uri-of-net-object, + cts:compute-property-uri-of-relation-object, + cts:compute-range-of-relation-property, + cts:create-atom-net, + cts:create-relation-net, + cts:create-unary-atom-list-net, + cts:define-uw-id, + cts:extend-atom-list-net, + cts:generate-atom-class, + cts:generate-atom-instance, + cts:generate-composite-class-from-list-net, + cts:generate-event-class, + cts:generate-relation-property, + cts:init-conjunctive-atom-list-net, + cts:init-disjunctive-atom-list-net, + cts:instantiate-atom-net, + cts:instantiate-composite-in-list-by-extension-1, + cts:instantiate-composite-in-list-by-extension-2, + cts:link-instances-by-relation-property, + cts:link-to-scope-entry, + cts:specify-axis-of-atom-list-net, + cts:update-batch-execution-rules, + cts:update-generation-class-rules, + cts:update-generation-relation-rules, + cts:update-generation-rules, + cts:update-net-extension-rules, + cts:update-preprocessing-rules . + +cts:old_add-event a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. + # Object Property + ?newEventObjectPropertyUri a owl:ObjectProperty. + ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. + ?newEventObjectPropertyUri rdfs:label ?verbConcept. + ?newEventObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: entity + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). + # URI (for object property) + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?eventObjectPropertyUri). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_add-state-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. + ?newStatePropertyUri rdfs:label ?statePropertyLabel. + ?newStatePropertyUri sys:from_structure ?req. + # Object Property + ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. + ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. + ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. + ?newStatePropertyObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: state property + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:is_class ?statePropertyClass. + BIND (concat( ?targetOntologyURI, ?statePropertyClass) AS ?c1). + BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). + BIND (uri( ?c1) AS ?statePropertyClassUri). + BIND (uri(?c2) AS ?newStatePropertyUri). + # URI (for object property) + sys:State_Property sys:has_object_property ?statePropertyObjectProperty. + BIND (concat( ?targetOntologyURI, ?statePropertyObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). + BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). +}""" ; + sh:order 0.331 . + +cts:old_compose-agt-verb-obj-as-simple-event a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event +CONSTRUCT { + # Net: Event + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:Event. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:action_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: agt(net1, net2) et obj(net1, net3) + ?uw1 unl:agt ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:event rdfs:label ?eventLabel. + BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compose-aoj-verb-obj-as-simple-state-property a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property +CONSTRUCT { + # Net: State Property + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:State_Property. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:attributive_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: aoj(net1, net2) et obj(net1, net3) + ?uw1 unl:aoj ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for State Property Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:state_property rdfs:label ?statePropertyLabel. + BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 . + +cts:old_compute-domain-range-of-event-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?newEventObjectPropertyUri rdfs:domain ?domainClass. + ?newEventObjectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?targetOntologyURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.332 . + +cts:old_compute-domain-range-of-state-property-object-properties a sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?objectPropertyUri rdfs:domain ?domainClass. + ?objectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:State_Property sys:has_object_property ?objectPropertyRef. + BIND (concat( ?targetOntologyURI, ?objectPropertyRef) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +}""" ; + sh:order 0.332 . + +unl:has_occurrence a owl:ObjectProperty ; + rdfs:domain unl:UW_Lexeme ; + rdfs:range unl:UW_Occurrence ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:is_occurrence_of . + +unl:is_occurrence_of a owl:ObjectProperty ; + rdfs:domain unl:UW_Occurrence ; + rdfs:range unl:UW_Lexeme ; + rdfs:subPropertyOf unl:unlObjectProperty ; + owl:inverseOf unl:has_occurrence . + +unl:is_scope_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Scope ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_source_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_superstructure_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Structure ; + rdfs:range unl:UNL_Structure ; + rdfs:subPropertyOf unl:unlObjectProperty . + +unl:is_target_of a owl:ObjectProperty ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:Universal_Relation ; + rdfs:subPropertyOf unl:unlObjectProperty . + +dash:PropertyAutoCompleteEditor a dash:SingleEditor ; + rdfs:label "Property auto-complete editor" ; + rdfs:comment "An editor for properties that are either defined as instances of rdf:Property or used as IRI values of sh:path. The component uses auto-complete to find these properties by their rdfs:labels or sh:names." . + +dash:PropertyLabelViewer a dash:SingleViewer ; + rdfs:label "Property label viewer" ; + rdfs:comment "A viewer for properties that renders a hyperlink using the display label or sh:name, allowing users to either navigate to the rdf:Property resource or the property shape definition. Should be used in conjunction with PropertyAutoCompleteEditor." . + +dash:Widget a dash:ShapeClass ; + rdfs:label "Widget" ; + dash:abstract true ; + rdfs:comment "Base class of user interface components that can be used to display or edit value nodes." ; + rdfs:subClassOf rdfs:Resource . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_system-icl-instrumentality-icl-thing-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person-- a unl:ben ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- a unl:obj ; + unl:has_source default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- ; + unl:has_target default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC a unl:mod ; + unl:has_source default3:occurence_capacity-icl-volume-icl-thing-- ; + unl:has_target default3:occurence_TRANSEC-NC . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- a unl:agt ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_operator-icl-causal-agent-icl-person-- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:man ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- . + +default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- a unl:res ; + unl:has_source default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:has_target default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- a unl:aoj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- a unl:obj ; + unl:has_source default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- ; + unl:has_target default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:operator-icl-causal-agent-icl-person--_mod_scope-01 a unl:mod ; + unl:has_source default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_target default3:scope_01 . + +<http://unsel.rdf-unl.org/uw_lexeme#document> a unl:UNL_Document ; + unl:is_superstructure_of default3:sentence_0 . + +rdfs:seeAlso a rdf:Property, + rdfs:Resource ; + rdfs:subPropertyOf rdfs:seeAlso . + +sh:Function dash:abstract true . + +sh:Shape dash:abstract true . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +cts:append-domain-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible domain, actor to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_source ?sourceObject. + ?net1 net:has_possible_domain ?domainClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): actor of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?sourceObject. + # condition: agt(net1, net2) + ?uw1 ( unl:agt | unl:aoj ) ?uw2. + # Possible Domain + { ?sourceObject net:has_concept ?domainClass. } + UNION + { ?sourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_concept ?domainClass. } +}""" ; + sh:order 2.42 . + +cts:append-range-to-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Append possible range, target to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_target ?targetObject. + ?net1 net:has_possible_range ?rangeClass. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_node ?uw1. + # Atom Net (net2): target of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?targetObject. + # condition: agt(net1, net2) + ?uw1 (unl:obj|unl:res) ?uw2. + # Possible Domain + { ?targetObject net:has_concept ?rangeClass. } + UNION + { ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. } +}""" ; + sh:order 2.42 . + +cts:bypass-reification a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Bypass reification (extension of UNL relations) +CONSTRUCT { + ?node1 ?unlRel ?node2. +} +WHERE { + ?rel unl:has_source ?node1. + ?rel unl:has_target ?node2. + ?rel a ?unlRel. +} """ ; + sh:order 1.1 . + +cts:compose-atom-with-list-by-mod-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and a list net (with distinct item classes) +CONSTRUCT { + # Object: Composite + ?newObject a net:Object. + ?newObject net:objectType net:composite. + ?newObject net:has_node ?uw1, ?uw3. + ?newObject net:has_mother_class ?net1Mother. + ?newObject net:has_parent_class ?net1Class. + ?newObject net:has_class ?subConcept. + ?newObject net:has_concept ?subConcept. + ?newObject net:has_feature ?net2Item. + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?newObject. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_mother_class ?net1Mother. + ?net1Object net:has_parent_class ?net1ParentClass. + ?net1Object net:has_class ?net1Class. + ?net1Object net:has_concept ?net1Concept. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:type ?listSubType. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass != ?net2ParentClass ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + BIND (concat( ?net2Concept, '_', ?net1Concept) AS ?subConcept). + # URI (for Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?objectRef, ?compositeLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.32 . + +cts:compose-atom-with-list-by-mod-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compose an atom net and an list net (with same item classes) +CONSTRUCT { + # Net: Composite List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type ?listSubType. + ?newNet net:listOf net:composite. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:entityClass ?net1ParentClass. + ?newNet net:has_parent ?net1Object. + ?newNet net:has_item ?net2Item. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?net1Object. + ?net1Object net:has_parent_class ?net1ParentClass. + # condition: mod(net1, net2) + ?uw1 unl:mod ?uw2. + # net2: list + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. + ?net2 net:has_item ?net2Item. + ?net2Item net:has_node ?uw3. + ?net2Item net:has_parent_class ?net2ParentClass. + ?net2Item net:has_concept ?net2Concept. + # Filter + FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }. + FILTER ( ?net1ParentClass = ?net2ParentClass ). + # Label: Id, subEntity + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # URI (for List Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.33 . + +cts:compute-class-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-class-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_mother_class_uri ?motherClassUri. + ?object net:has_parent_class_uri ?parentClassUri. + ?object net:has_class_uri ?objectClassUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_mother_class ?motherClass. + ?object net:has_parent_class ?parentClass. + ?object net:has_class ?objectClass. + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newClassRef ?newClassRef. + BIND (str(?motherClass) AS ?s1). + # TODO: BIND (concat( ?targetOntologyURI, ?motherClass) AS ?s1). + BIND (concat(?targetOntologyURI, ?parentClass) AS ?s2). + BIND (concat(?targetOntologyURI, ?newClassRef, ?objectClass) AS ?s3). + BIND (uri( ?s1) AS ?motherClassUri). + BIND (uri( ?s2) AS ?parentClassUri). + BIND (uri(?s3) AS ?objectClassUri). +} +VALUES ?objectType { + net:atom + net:composite +}""" ; + sh:order 2.91 . + +cts:compute-instance-uri-of-net-object a sh:SPARQLRule ; + rdfs:label "compute-instance-uri-of-net-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_instance_uri ?objectInstanceUri. +} +WHERE { + # object + ?object a net:Object. + ?object net:has_parent_class ?parentClass. + ?object net:has_instance ?objectInstance. + # URI (for classes and instance) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat( ?targetOntologyURI, ?parentClass) AS ?s1). + BIND (concat(?s1, '#', ?objectInstance) AS ?s2). + BIND (uri(?s2) AS ?objectInstanceUri). +}""" ; + sh:order 2.92 . + +cts:compute-property-uri-of-relation-object a sh:SPARQLRule ; + rdfs:label "compute-property-uri-of-relation-object" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute useful URI +CONSTRUCT { + # Net Object URI + ?object net:has_property_uri ?objectPropertyUri. +} +WHERE { + # Object of type Relation + ?object a net:Object. + ?object net:objectType ?objectType. + ?object net:has_parent_property ?parentProperty. + ?object net:has_concept ?objectConcept. + # URI (for object property) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + cprm:Config_Parameters cprm:newPropertyRef ?newPropertyRef. + ?parentProperty sys:has_reference ?relationReference. + BIND (concat( ?targetOntologyURI, ?newPropertyRef, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?objectConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +} +VALUES ?objectType { + net:relation +}""" ; + sh:order 2.91 . + +cts:create-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create Atom Net (entity) +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:atom. + ?newObject net:has_node ?uw1. + ?newObject net:has_mother_class ?atomMother. + ?newObject net:has_parent_class ?atomClass. + ?newObject net:has_class ?concept1. + ?newObject net:has_concept ?concept1. + # Net + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf ?atomMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_atom ?newObject. +} +WHERE { + # Atom Description (from System Ontology) + ?atomMother rdfs:subClassOf* sys:Structure. + ?atomMother sys:is_class ?atomClass. + ?atomMother seedSchema:has_uw-regex-seed ?restriction. + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Filter on label + ?uw1 rdfs:label ?uw1Label. + FILTER ( regex(str(?uw1Label),str(?restriction)) ). + # Label: Id, concept + ?uw1 unl:has_id ?uw1Id. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?concept1). + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?objectRef, ?atomLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Atom Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + BIND (concat( ?netURI, ?classReference, '-', ?atomClass, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.11 . + +cts:create-relation-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX seedSchema: <https://tenet.tetras-libre.fr/structure/seedSchema#> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create relation net +CONSTRUCT { + # Object + ?newObject a net:Object. + ?newObject net:objectType net:relation. + ?newObject net:has_node ?uw1. + ?newObject net:has_parent_property ?relationMother. + ?newObject net:has_concept ?verbConcept. + # create: Relation Net + ?newNet a net:Instance. + ?newNet net:type net:relation. + ?newNet net:relationOf ?relationMother. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_relation ?newObject. +} +WHERE { + # Relation Description (from System Ontology) + ?targetProperty rdfs:subPropertyOf* sys:Relation. + ?targetProperty sys:has_mother_property ?relationMother. + ?targetProperty sys:has_reference ?relationReference. + # -- old --- ?targetProperty sys:has_restriction_on_class ?classRestriction. + ?targetProperty seedSchema:has_class-restriction-seed ?classRestriction. + # Atom Net (net1): restricted net according to its atom category (atomOf) + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?classRestriction. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Verb Actor + ?net1 net:has_atom ?verbObject. + ?verbObject net:has_mother_class ?verbMother. + ?verbObject net:has_parent_class ?verbParentClass. + ?verbObject net:has_concept ?verbConcept. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:relation rdfs:label ?relationLabel. + BIND (concat( ?netURI, ?objectRef, ?relationLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Property sys:has_reference ?propertyReference. + BIND (concat( ?netURI, ?propertyReference, '-', ?relationReference, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 2.41 . + +cts:create-unary-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Create an unary Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:unary_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw0 unl:mod ?uw1. + FILTER NOT EXISTS { ?uw1 (unl:and|unl:or) ?uw2 } + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?classReference, '-', ?listLabel, '-', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:define-uw-id a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Define an ID for each UW (occurrence) +CONSTRUCT { + ?uw1 unl:has_id ?uwId. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw1 rdf:type unl:UW_Occurrence. + ?uw1 unl:is_substructure_of ?req. + # Label(s) / URI + ?req unl:has_id ?reqId. + ?uw1 rdfs:label ?uw1Label. + BIND (IF (CONTAINS(?uw1Label, '('), strbefore(?uw1Label, '('), str(?uw1Label)) AS ?rawConcept). + BIND (REPLACE(?rawConcept, " ", "-") AS ?concept1) + BIND (strafter(str(?uw1), "---") AS ?numOcc). + BIND (concat( ?reqId, '_', ?concept1, ?numOcc) AS ?uwId). +} """ ; + sh:order 1.3 . + +cts:extend-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Extend an Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:has_node ?uw2. + ?net1 net:has_item ?object2. +} +WHERE { + # Net1: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # extension: disjunction of UW + ?uw1 (unl:or|unl:and) ?uw2. + # Net2: Atom + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?object2. +}""" ; + sh:order 2.22 . + +cts:init-conjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a conjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:conjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:and ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:init-disjunctive-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Initialize a disjunctive Atom List net +CONSTRUCT { + # Net: Atom List + ?newNet a net:Instance. + ?newNet net:type net:list. + ?newNet net:type net:disjunctive_list. + ?newNet net:listOf net:atom. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. + ?newNet net:has_item ?object1. +} +WHERE { + # Net: Atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf ?net1Mother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?object1. + ?object1 net:has_parent_class ?net1ParentClass. + # selection: target UW of modifier (mod) + ?uw1 unl:or ?uw2. + # UW: type UW-Occurrence and substructure of req sentence + ?uw2 rdf:type unl:UW_Occurrence. + ?uw2 unl:is_substructure_of ?req. + # Label(s) / URI + ?uw1 rdfs:label ?uw1Label. + ?uw1 unl:has_id ?uw1Id. + cprm:Config_Parameters cprm:netURI ?netURI. + net:list rdfs:label ?listLabel. + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat(?s1, ?uw1Id) AS ?s2). + BIND (uri(?s2) AS ?newNet). +}""" ; + sh:order 2.21 . + +cts:instantiate-atom-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate atom net +CONSTRUCT { + # Object: entity + ?atomObject1 net:has_instance ?instanceName. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?atomObject1. + # condition: agt/obj(uw0, uw1) + ?uw0 (unl:agt | unl:obj | unl:aoj) ?uw1. + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Label: id, name + ?uw1 unl:has_id ?uw1Id. + BIND (?uw1Id AS ?instanceName). +}""" ; + sh:order 2.12 . + +cts:instantiate-composite-in-list-by-extension-1 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate composite in list by extension of instances from parent element +CONSTRUCT { + ?itemObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?itemObject. + # Filter + FILTER NOT EXISTS { ?itemObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.341 . + +cts:instantiate-composite-in-list-by-extension-2 a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Instantiate entities in class list by extension of instances (2) +CONSTRUCT { + ?net2SubObject net:has_instance ?parentInstance. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_instance ?parentInstance. + ?net1 net:has_item ?net1SubObject. + ?net1SubObject net:has_concept ?sameEntity. + # net2: Another List + ?net2 a net:Instance. + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_parent ?net2MainObject. + ?net2MainObject net:has_concept ?sameEntity. + ?net2 net:has_item ?net2SubObject. + # Filter + FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } . +}""" ; + sh:order 2.342 . + +cts:link-to-scope-entry a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link UNL relation to scope entry +# (by connecting the source node of the scope to the entry node of the scope) +CONSTRUCT { + ?node1Occ ?unlRel ?node2Occ. +} +WHERE { + ?scope rdf:type unl:UNL_Scope. + ?node1Occ unl:is_source_of ?rel. + ?rel unl:has_target ?scope. + ?scope unl:is_scope_of ?scopeRel. + ?scopeRel unl:has_source ?node2Occ. + ?node2Occ unl:has_attribute ".@entry". + ?rel a ?unlRel. +} """ ; + sh:order 1.2 . + +cts:old_link-classes-by-relation-property a sh:SPARQLRule ; + rdfs:label "link-classes-by-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Link two classes by relation property (according existence of domain and range) +CONSTRUCT { + # relation between domain/range classes + ?domainClassUri ?propertyUri ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?propertyUri rdfs:domain ?domainClass. + ?propertyUri rdfs:range ?rangeClass. + BIND (uri( ?domainClass) AS ?domainClassUri). + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 0.33 . + +cts:specify-axis-of-atom-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Specify axis of Atom List net +CONSTRUCT { + # Update Atom List net (net1) + ?net1 net:listBy ?unlRel. +} +WHERE { + # UW: type UW-Occurrence and substructure of req sentence + ?uw0 rdf:type unl:UW_Occurrence. + ?uw0 unl:is_substructure_of ?req. + # Net: Atom List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:atom. + ?net1 net:has_node ?uw1. + # selection: target UW of modifier (mod) + ?uw0 ?unlRel ?uw1. + FILTER NOT EXISTS { ?net1 net:has_node ?uw0 }. +}""" ; + sh:order 2.23 . + +cts:update-batch-execution-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:batch_execution sh:rule ?rule. +} +WHERE { + ?nodeShapes sh:rule ?rule. +} +VALUES ?nodeShapes { + cts:preprocessing + cts:net_extension + cts:generation +}""" ; + sh:order 1.09 . + +cts:update-generation-class-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:class_generation sh:rule ?rule. +} +WHERE { + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.1") ). } + UNION + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.2") ). } +}""" ; + sh:order 1.031 . + +cts:update-generation-relation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:relation_generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.3") ). +}""" ; + sh:order 1.032 . + +cts:update-generation-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"3.") ). +}""" ; + sh:order 1.03 . + +cts:update-net-extension-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:net_extension sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"2.") ). +}""" ; + sh:order 1.02 . + +cts:update-preprocessing-rules a sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://tenet.tetras-libre.fr/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:preprocessing sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),"1.") ). +}""" ; + sh:order 1.01 . + +<https://unl.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:imports <http://www.w3.org/2008/05/skos-xl> ; + owl:versionIRI unl:0.1 . + +<https://unl.tetras-libre.fr/rdf/schema#@indef> a owl:Class ; + rdfs:label "indef" ; + rdfs:subClassOf unl:specification ; + skos:definition "indefinite" . + +unl:UNLKB_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:UNL_Graph_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Node . + +unl:animacy a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:degree a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:dur a owl:Class, + owl:ObjectProperty ; + rdfs:label "dur" ; + rdfs:subClassOf unl:Universal_Relation, + unl:tim ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:tim ; + skos:altLabel "duration or co-occurrence"@en ; + skos:definition "The duration of an entity or event."@en ; + skos:example """John worked for five hours = dur(worked;five hours) +John worked hard the whole summer = dur(worked;the whole summer) +John completed the task in ten minutes = dur(completed;ten minutes) +John was reading while Peter was cooking = dur(John was reading;Peter was cooking)"""@en . + +unl:figure_of_speech a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:ins a owl:Class, + owl:ObjectProperty ; + rdfs:label "ins" ; + rdfs:subClassOf unl:Universal_Relation, + unl:man ; + rdfs:subPropertyOf unl:Universal_Relation, + unl:man ; + skos:altLabel "instrument or method"@en ; + skos:definition "An inanimate entity or method that an agent uses to implement an event. It is the stimulus or immediate physical cause of an event."@en ; + skos:example """The cook cut the cake with a knife = ins(cut;knife) +She used a crayon to scribble a note = ins(used;crayon) +That window was broken by a hammer = ins(broken;hammer) +He solved the problem with a new algorithm = ins(solved;a new algorithm) +He solved the problem using an algorithm = ins(solved;using an algorithm) +He used Mathematics to solve the problem = ins(used;Mathematics)"""@en . + +unl:per a owl:Class, + owl:ObjectProperty ; + rdfs:label "per" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "proportion, rate, distribution, measure or basis for a comparison"@en ; + skos:definition "Used to indicate a measure or quantification of an event."@en ; + skos:example """The course was split in two parts = per(split;in two parts) +twice a week = per(twice;week) +The new coat costs $70 = per(cost;$70) +John is more beautiful than Peter = per(beautiful;Peter) +John is as intelligent as Mary = per(intelligent;Mary) +John is the most intelligent of us = per(intelligent;we)"""@en . + +unl:relative_tense a owl:Class ; + rdfs:subClassOf unl:time . + +unl:superlative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:time a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:unlAnnotationProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf unl:unlProperty . + +unl:unlDatatypeProperty a owl:DatatypeProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:Action a dash:ShapeClass ; + rdfs:label "Action" ; + dash:abstract true ; + rdfs:comment "An executable command triggered by an agent, backed by a Script implementation. Actions may get deactivated using sh:deactivated." ; + rdfs:subClassOf dash:Script, + sh:Parameterizable . + +dash:Editor a dash:ShapeClass ; + rdfs:label "Editor" ; + dash:abstract true ; + rdfs:comment "The class of widgets for editing value nodes." ; + rdfs:subClassOf dash:Widget . + +dash:ResourceAction a dash:ShapeClass ; + rdfs:label "Resource action" ; + dash:abstract true ; + rdfs:comment "An Action that can be executed for a selected resource. Such Actions show up in context menus once they have been assigned a sh:group." ; + rdfs:subClassOf dash:Action . + +dash:Viewer a dash:ShapeClass ; + rdfs:label "Viewer" ; + dash:abstract true ; + rdfs:comment "The class of widgets for viewing value nodes." ; + rdfs:subClassOf dash:Widget . + +default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- a unl:or ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_CDC-icl-object-icl-place-icl-thing--- ; + unl:has_target default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "operational_manager(equ>director,icl>administrator(icl>thing))" ; + unl:has_attribute ".@entry", + ".@male", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operational-manager-equ-director-icl-administrator-icl-thing--> ; + unl:is_source_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:mod default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- a unl:mod ; + unl:has_scope default3:scope_01 ; + unl:has_source default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing-- ; + unl:has_target default3:occurence_CDC-icl-object-icl-place-icl-thing--- . + +rdf:first a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:subPropertyOf rdf:first . + +sh:Parameterizable dash:abstract true . + +sh:Target dash:abstract true . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +unl:Universal_Word a owl:Class ; + rdfs:label "Universal Word" ; + rdfs:comment """For details abour UWs, see : +http://www.unlweb.net/wiki/Universal_Words + +Universal Words, or simply UW's, are the words of UNL, and correspond to nodes - to be interlinked by Universal Relations and specified by Universal Attributes - in a UNL graph.""" ; + rdfs:subClassOf unl:UNL_Structure . + +unl:comparative a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:gender a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:information_structure a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:nominal_attributes a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:person a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:place a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:polarity a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:position a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlProperty a rdf:Property . + +default3:occurence_ARS-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "ARS(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#ARS-icl-object-icl-place-icl-thing---> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_TRANSEC-NC a unl:UW_Occurrence ; + rdfs:label "TRANSEC-NC" ; + unl:has_attribute ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#TRANSEC-NC> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC . + +default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing- a unl:UW_Occurrence ; + rdfs:label "include(aoj>thing,icl>contain(icl>be),obj>thing)" ; + unl:aoj default3:occurence_mission-icl-assignment-icl-thing-- ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#include-aoj-thing-icl-contain-icl-be--obj-thing-> ; + unl:is_source_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_radio-channel-icl-communication-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "radio_channel(icl>communication(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#radio-channel-icl-communication-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_obj_radio-channel-icl-communication-icl-thing-- . + +default3:occurence_system-icl-instrumentality-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "system(icl>instrumentality(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#system-icl-instrumentality-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing-- . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +cts:add-conjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-conjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:intersectionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:and ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:add-disjunctive-classes-from-list-net a sh:SPARQLRule ; + rdfs:label "add-disjunctive-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add disjunctive classes in Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri + owl:equivalentClass [ a owl:Class ; + owl:unionOf ( ?item1Uri ?item2Uri ) ] . + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. + # extension: disjunction of UW + ?uw1 unl:or ?uw2. + # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. + ?uw2 rdfs:label ?uw2Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) + BIND (strbefore(?uw2Label, '(') AS ?concept2) + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + BIND (concat(?targetOntologyURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). +}""" ; + sh:order 3.23 . + +cts:complement-composite-class a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Complement composite classes with feature relation +CONSTRUCT { + # Complement with feature relation + ?compositeClassUri sys:has_feature ?featureUri. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + # -- Item + ?net1 net:has_item ?itemObject. + ?itemObject net:has_class_uri ?compositeClassUri. + ?itemObject net:has_feature ?featureObject. + # -- Feature + ?featureObject a net:Object. + ?featureObject net:has_class_uri ?featureUri. +}""" ; + sh:order 3.22 . + +cts:generate-atom-class a sh:SPARQLRule ; + rdfs:label "add-entity-classes" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Atom Class in Target Ontology +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?atomConcept. + ?newClassUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_parent_class_uri ?parentUri. + ?atomObject1 net:has_class_uri ?newClassUri. + ?atomObject1 net:has_concept ?atomConcept. + # Filter: atom not present in a composite list + FILTER NOT EXISTS { + ?net2 net:type net:list. + ?net2 net:listOf net:composite. + ?net2 net:has_item ?atomObject1. + } +}""" ; + sh:order 3.1 . + +cts:generate-atom-instance a sh:SPARQLRule ; + rdfs:label "add-entity" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate atom instance in System Ontology +CONSTRUCT { + # Instantiation + ?newInstanceUri a ?classUri. + ?newInstanceUri rdfs:label ?atomInstance. + ?newInstanceUri sys:from_structure ?req. +} +WHERE { + # net1: atom + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:has_structure ?req. + ?net1 net:has_atom ?atomObject1. + ?atomObject1 net:has_class_uri ?classUri. + ?atomObject1 net:has_instance ?atomInstance. + ?atomObject1 net:has_instance_uri ?newInstanceUri. + # Filter: entity not present in a class list + FILTER NOT EXISTS { ?net2 net:has_subClass ?atomConcept} +}""" ; + sh:order 3.1 . + +cts:generate-composite-class-from-list-net a sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Composite Class in Ontology (from Composite List net) +CONSTRUCT { + # Classification + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?compositeConcept. + ?newClassUri sys:from_structure ?req. + # Instantiation (extension) + ?instanceUri rdf:type ?newClassUri. + ?instanceUri sys:from_structure ?req. +} +WHERE { + # net1: Composite List + ?net1 a net:Instance. + ?net1 net:type net:list. + ?net1 net:listOf net:composite. + ?net1 net:has_structure ?req. + ?net1 net:has_parent ?parentObject. + ?parentObject net:has_class_uri ?parentUri. + # -- old --- ?parentObject net:has_instance_uri ?instanceUri. + ?net1 net:has_item ?compositeObject. + ?compositeObject net:has_class_uri ?newClassUri. + ?compositeObject net:has_concept ?compositeConcept. +}""" ; + sh:order 3.21 . + +unl:lexical_category a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:voice a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +default3:occurence_CDC-icl-object-icl-place-icl-thing--- a unl:UW_Occurrence ; + rdfs:label "CDC(icl>object(icl>place(icl>thing)))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#CDC-icl-object-icl-place-icl-thing---> ; + unl:is_source_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:or default3:occurence_ARS-icl-object-icl-place-icl-thing--- . + +default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw- a unl:UW_Occurrence ; + rdfs:label "allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw)" ; + unl:aoj default3:occurence_system-icl-instrumentality-icl-thing-- ; + unl:ben default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:has_attribute ".@entry", + ".@obligation", + ".@present" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-> ; + unl:is_source_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_aoj_system-icl-instrumentality-icl-thing--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:is_substructure_of default3:sentence_0 ; + unl:obj default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- . + +default3:occurence_capacity-icl-volume-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "capacity(icl>volume(icl>thing))" ; + unl:has_attribute ".@def", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#capacity-icl-volume-icl-thing--> ; + unl:is_source_of default3:capacity-icl-volume-icl-thing--_mod_TRANSEC-NC ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:mod default3:occurence_TRANSEC-NC . + +default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- a unl:UW_Occurrence ; + rdfs:label "define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-> ; + unl:is_source_of default3:define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-_obj_capacity-icl-volume-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:obj default3:occurence_capacity-icl-volume-icl-thing-- . + +default3:scope_01 a unl:UNL_Scope ; + rdfs:label "01" ; + unl:is_scope_of default3:CDC-icl-object-icl-place-icl-thing---_or_ARS-icl-object-icl-place-icl-thing---, + default3:operational-manager-equ-director-icl-administrator-icl-thing--_mod_CDC-icl-object-icl-place-icl-thing--- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 . + +rdf:rest a rdf:Property, + rdfs:Resource ; + rdfs:domain rdf:List ; + rdfs:range rdf:List ; + rdfs:subPropertyOf rdf:rest . + +sh:AbstractResult dash:abstract true . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +<https://unl.tetras-libre.fr/rdf/schema#@pl> a owl:Class ; + rdfs:label "pl" ; + rdfs:subClassOf unl:quantification ; + skos:definition "plural" . + +unl:absolute_tense a owl:Class ; + rdfs:subClassOf unl:time . + +default3:occurence_mission-icl-assignment-icl-thing-- a unl:UW_Occurrence ; + rdfs:label "mission(icl>assignment(icl>thing))" ; + unl:has_attribute ".@indef", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#mission-icl-assignment-icl-thing--> ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing--, + default3:include-aoj-thing-icl-contain-icl-be--obj-thing-_aoj_mission-icl-assignment-icl-thing-- . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +cts:compute-domain-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-domain-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Domain of Relation Property +CONSTRUCT { + # update Relation Property: add domain + ?newPropertyUri rdfs:domain ?domainClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1. + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + BIND (uri( ?domainClass) AS ?domainClassUri). +}""" ; + sh:order 3.32 . + +cts:compute-range-of-relation-property a sh:SPARQLRule ; + rdfs:label "compute-range-of-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Compute Range of Relation Property +CONSTRUCT { + # update Relation Property: add range + ?newPropertyUri rdfs:range ?rangeClassUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + BIND (uri( ?rangeClass) AS ?rangeClassUri). +}""" ; + sh:order 3.32 . + +cts:generate-event-class a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Add Event Class in Target Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_concept ?sourceConcept. + # -- Target Object + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_concept ?targetConcept. + # Label: event + BIND (concat(?sourceConcept, '-', ?relationConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + cprm:Config_Parameters cprm:targetOntologyURI ?targetOntologyURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?targetOntologyURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). +}""" ; + sh:order 3.31 . + +cts:generate-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +# -- Generate Relation Property in Target Ontology +CONSTRUCT { + # update: Relation Property + ?newPropertyUri a owl:ObjectProperty. + ?newPropertyUri rdfs:subPropertyOf ?parentProperty. + ?newPropertyUri rdfs:label ?relationConcept. + ?newPropertyUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. +}""" ; + sh:order 3.31 . + +cts:link-instances-by-relation-property a sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#> +PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#> +PREFIX req: <https://tenet.tetras-libre.fr/frame/requirement-ontology#> +PREFIX sys: <https://tenet.tetras-libre.fr/base-ontology/> +PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#> + +CONSTRUCT { + ?sourceInstanceUri ?newPropertyUri ?targetInstanceUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_parent_property ?parentProperty. + ?relationObject net:has_property_uri ?newPropertyUri. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- Target Object + ?net1 net:has_target ?targetObject. + ?targetObject net:has_instance_uri ?targetInstanceUri. +}""" ; + sh:order 3.33 . + +unl:positive a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:syntactic_structures a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:tim a owl:Class, + owl:ObjectProperty ; + rdfs:label "tim" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "time"@en ; + skos:definition "The temporal placement of an entity or event."@en ; + skos:example """The whistle will sound at noon = tim(sound;noon) +John came yesterday = tim(came;yesterday)"""@en . + +default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw- a unl:UW_Occurrence ; + rdfs:label "create(agt>thing,icl>make(icl>do),obj>uw)" ; + unl:agt default3:occurence_operator-icl-causal-agent-icl-person-- ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#create-agt-thing-icl-make-icl-do--obj-uw-> ; + unl:is_source_of default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_man_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_res_mission-icl-assignment-icl-thing-- ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_obj_create-agt-thing-icl-make-icl-do--obj-uw- ; + unl:man default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing- ; + unl:res default3:occurence_mission-icl-assignment-icl-thing-- . + +default3:occurence_operator-icl-causal-agent-icl-person-- a unl:UW_Occurrence ; + rdfs:label "operator(icl>causal_agent(icl>person))" ; + unl:has_attribute ".@indef", + ".@male", + ".@singular" ; + unl:is_occurrence_of <http://unsel.rdf-unl.org/uw_lexeme#operator-icl-causal-agent-icl-person--> ; + unl:is_source_of default3:operator-icl-causal-agent-icl-person--_mod_scope-01 ; + unl:is_substructure_of default3:sentence_0 ; + unl:is_target_of default3:allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-_ben_operator-icl-causal-agent-icl-person--, + default3:create-agt-thing-icl-make-icl-do--obj-uw-_agt_operator-icl-causal-agent-icl-person-- ; + unl:mod default3:scope_01 . + +unl:conventions a owl:Class ; + rdfs:subClassOf unl:syntactic_structures . + +unl:social_deixis a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:Script a dash:ShapeClass ; + rdfs:label "Script" ; + rdfs:comment "An executable unit implemented in one or more languages such as JavaScript." ; + rdfs:subClassOf rdfs:Resource . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +unl:other a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:plc a owl:Class, + owl:ObjectProperty ; + rdfs:label "plc" ; + rdfs:subClassOf unl:Universal_Relation ; + rdfs:subPropertyOf unl:Universal_Relation ; + skos:altLabel "place"@en ; + skos:definition "The location or spatial orientation of an entity or event."@en ; + skos:example """John works here = plc(work;here) +John works in NY = plc(work;NY) +John works in the office = plc(work;office) +John is in the office = plc(John;office) +a night in Paris = plc(night;Paris)"""@en . + +unl:register a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:specification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:UNL_Node a owl:Class ; + rdfs:subClassOf unl:UNL_Structure . + +dash:TestCase a dash:ShapeClass ; + rdfs:label "Test case" ; + dash:abstract true ; + rdfs:comment "A test case to verify that a (SHACL-based) feature works as expected." ; + rdfs:subClassOf rdfs:Resource . + +<https://unl.tetras-libre.fr/rdf/schema#@def> a owl:Class ; + rdfs:label "def" ; + rdfs:subClassOf unl:specification ; + skos:definition "definite" . + +unl:direction a owl:Class ; + rdfs:subClassOf unl:place . + +unl:unlObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf unl:unlProperty . + +dash:SingleViewer a dash:ShapeClass ; + rdfs:label "Single viewer" ; + rdfs:comment "A viewer for a single value." ; + rdfs:subClassOf dash:Viewer . + +unl:Schemes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:emotions a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:ConstraintReificationShape a sh:NodeShape ; + rdfs:label "Constraint reification shape" ; + rdfs:comment "Can be used to attach sh:severity and sh:messages to individual constraints using reification." ; + sh:property dash:ConstraintReificationShape-message, + dash:ConstraintReificationShape-severity . + +() a rdf:List, + rdfs:Resource . + +cts:Transduction_Schemes a owl:Class, + sh:NodeShape ; + rdfs:label "Transduction Schemes" ; + rdfs:subClassOf owl:Thing . + +unl:UNL_Structure a owl:Class ; + rdfs:label "UNL Structure" ; + rdfs:comment "Sentences expressed in UNL can be organized in paragraphs and documents" . + +unl:quantification a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +dash:SingleEditor a dash:ShapeClass ; + rdfs:label "Single editor" ; + rdfs:comment "An editor for individual value nodes." ; + rdfs:subClassOf dash:Editor . + +default3:sentence_0 a unl:UNL_Sentence ; + rdfs:label """The system shall allow an operator (operational manager of the CDC or ARS) to create a mission with a radio channel by defining the following parameters: +- radio channel wording, +- role associated with the radio channel, +- work area, +- frequency, +- TRANSEC capacity, +- for each center lane: +o name of the radio centre, +o order number of the radio centre, +- mission wording"""@en, + """Le système doit permettre à un opérateur (gestionnaire opérationnel du CDC ou de l'ARS) de créer une mission comportant une voie radio en définissant les paramètres suivants: +• libellé de la voie radio, +• rôle associé à la voie radio, +• zone de travail, +• fréquence, +• capacité TRANSEC, +• pour chaque voie centre: +o libellé du centre radio, +o numéro d'ordre du centre radio, +• libellé de la mission"""@fr ; + skos:altLabel """[S:1] +aoj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,system(icl>instrumentality(icl>thing)).@def.@singular) +ben(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +mod(operator(icl>causal_agent(icl>person)).@indef.@male.@singular,:01.@parenthesis) +mod:01(operational_manager(equ>director,icl>administrator(icl>thing)).@entry.@male.@singular,CDC(icl>object(icl>place(icl>thing))).@def.@singular) +or:01(CDC(icl>object(icl>place(icl>thing))).@def.@singular,ARS(icl>object(icl>place(icl>thing))).@def.@singular) +obj(allow(agt>volitional_thing,ben>volitional_thing,equ>permit,icl>do,obj>uw).@entry.@obligation.@present,create(agt>thing,icl>make(icl>do),obj>uw)) +agt(create(agt>thing,icl>make(icl>do),obj>uw),operator(icl>causal_agent(icl>person)).@indef.@male.@singular) +res(create(agt>thing,icl>make(icl>do),obj>uw),mission(icl>assignment(icl>thing)).@indef.@singular) +aoj(include(aoj>thing,icl>contain(icl>be),obj>thing),mission(icl>assignment(icl>thing)).@indef.@singular) +obj(include(aoj>thing,icl>contain(icl>be),obj>thing),radio_channel(icl>communication(icl>thing)).@indef.@singular) +man(create(agt>thing,icl>make(icl>do),obj>uw),define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing)) +obj(define(agt>thing,equ>demarkate,icl>set(icl>do),obj>thing),capacity(icl>volume(icl>thing)).@def.@singular) +mod(capacity(icl>volume(icl>thing)).@def.@singular,TRANSEC-NC.@singular) + +[/S]""" ; + unl:has_id "SRSA-IP_STB_PHON_00100" ; + unl:has_index <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_substructure_of <http://unsel.rdf-unl.org/uw_lexeme#document> ; + unl:is_superstructure_of default3:occurence_ARS-icl-object-icl-place-icl-thing---, + default3:occurence_CDC-icl-object-icl-place-icl-thing---, + default3:occurence_TRANSEC-NC, + default3:occurence_allow-agt-volitional-thing-ben-volitional-thing-equ-permit-icl-do-obj-uw-, + default3:occurence_capacity-icl-volume-icl-thing--, + default3:occurence_create-agt-thing-icl-make-icl-do--obj-uw-, + default3:occurence_define-agt-thing-equ-demarkate-icl-set-icl-do--obj-thing-, + default3:occurence_include-aoj-thing-icl-contain-icl-be--obj-thing-, + default3:occurence_mission-icl-assignment-icl-thing--, + default3:occurence_operational-manager-equ-director-icl-administrator-icl-thing--, + default3:occurence_operator-icl-causal-agent-icl-person--, + default3:occurence_radio-channel-icl-communication-icl-thing--, + default3:occurence_system-icl-instrumentality-icl-thing--, + default3:scope_01 . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +unl:aspect a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Tropes a owl:Class ; + rdfs:subClassOf unl:figure_of_speech . + +unl:location a owl:Class ; + rdfs:subClassOf unl:place . + +unl:Universal_Attribute a rdfs:Datatype, + owl:Class ; + rdfs:label "Universal Attribute" ; + rdfs:comment """More informations about Universal Attributes here : +http://www.unlweb.net/wiki/Universal_Attributes + +Classes in this hierarchy are informative. +Universal attributes must be expressed as strings (label of the attribute) with datatype :Universal_Attribute. + +Universal Attributes are arcs linking a node to itself. In opposition to Universal Relations, they correspond to one-place predicates, i.e., functions that take a single argument. In UNL, attributes have been normally used to represent information conveyed by natural language grammatical categories (such as tense, mood, aspect, number, etc). The set of attributes, which is claimed to be universal, is defined in the UNL Specs and is not open to frequent additions.""" ; + rdfs:subClassOf unl:UNL_Structure ; + owl:equivalentClass [ a rdfs:Datatype ; + owl:oneOf ( ".@1" ".@2" ".@3" ".@ability" ".@about" ".@above" ".@according_to" ".@across" ".@active" ".@adjective" ".@adverb" ".@advice" ".@after" ".@again" ".@against" ".@agreement" ".@all" ".@alliteration" ".@almost" ".@along" ".@also" ".@although" ".@among" ".@anacoluthon" ".@anadiplosis" ".@anaphora" ".@anastrophe" ".@and" ".@anger" ".@angle_bracket" ".@antanaclasis" ".@anterior" ".@anthropomorphism" ".@anticlimax" ".@antimetabole" ".@antiphrasis" ".@antithesis" ".@antonomasia" ".@any" ".@apposition" ".@archaic" ".@around" ".@as" ".@as.@if" ".@as_far_as" ".@as_of" ".@as_per" ".@as_regards" ".@as_well_as" ".@assertion" ".@assonance" ".@assumption" ".@asyndeton" ".@at" ".@attention" ".@back" ".@barring" ".@because" ".@because_of" ".@before" ".@behind" ".@belief" ".@below" ".@beside" ".@besides" ".@between" ".@beyond" ".@both" ".@bottom" ".@brace" ".@brachylogia" ".@but" ".@by" ".@by_means_of" ".@catachresis" ".@causative" ".@certain" ".@chiasmus" ".@circa" ".@climax" ".@clockwise" ".@colloquial" ".@command" ".@comment" ".@concerning" ".@conclusion" ".@condition" ".@confirmation" ".@consent" ".@consequence" ".@consonance" ".@contact" ".@contentment" ".@continuative" ".@conviction" ".@decision" ".@deduction" ".@def" ".@desire" ".@despite" ".@determination" ".@dialect" ".@disagreement" ".@discontentment" ".@dissent" ".@distal" ".@double_negative" ".@double_parenthesis" ".@double_quote" ".@doubt" ".@down" ".@dual" ".@due_to" ".@during" ".@dysphemism" ".@each" ".@either" ".@ellipsis" ".@emphasis" ".@enough" ".@entire" ".@entry" ".@epanalepsis" ".@epanorthosis" ".@equal" ".@equivalent" ".@euphemism" ".@even" ".@even.@if" ".@except" ".@except.@if" ".@except_for" ".@exclamation" ".@excluding" ".@exhortation" ".@expectation" ".@experiential" ".@extra" ".@failing" ".@familiar" ".@far" ".@fear" ".@female" ".@focus" ".@following" ".@for" ".@from" ".@front" ".@future" ".@generic" ".@given" ".@habitual" ".@half" ".@hesitation" ".@hope" ".@hyperbole" ".@hypothesis" ".@if" ".@if.@only" ".@imperfective" ".@in" ".@in_accordance_with" ".@in_addition_to" ".@in_case" ".@in_case_of" ".@in_front_of" ".@in_place_of" ".@in_spite_of" ".@inceptive" ".@inchoative" ".@including" ".@indef" ".@inferior" ".@inside" ".@instead_of" ".@intention" ".@interrogation" ".@intimate" ".@invitation" ".@irony" ".@iterative" ".@jargon" ".@judgement" ".@least" ".@left" ".@less" ".@like" ".@literary" ".@majority" ".@male" ".@maybe" ".@medial" ".@metaphor" ".@metonymy" ".@minority" ".@minus" ".@more" ".@most" ".@multal" ".@narrative" ".@near" ".@near_to" ".@necessity" ".@neither" ".@neutral" ".@no" ".@not" ".@notwithstanding" ".@noun" ".@obligation" ".@of" ".@off" ".@on" ".@on_account_of" ".@on_behalf_of" ".@on_top_of" ".@only" ".@onomatopoeia" ".@opinion" ".@opposite" ".@or" ".@ordinal" ".@other" ".@outside" ".@over" ".@owing_to" ".@own" ".@oxymoron" ".@pace" ".@pain" ".@paradox" ".@parallelism" ".@parenthesis" ".@paronomasia" ".@part" ".@passive" ".@past" ".@paucal" ".@pejorative" ".@per" ".@perfect" ".@perfective" ".@periphrasis" ".@permission" ".@permissive" ".@persistent" ".@person" ".@pl" ".@pleonasm" ".@plus" ".@polite" ".@polyptoton" ".@polysyndeton" ".@possibility" ".@posterior" ".@prediction" ".@present" ".@presumption" ".@prior_to" ".@probability" ".@progressive" ".@prohibition" ".@promise" ".@prospective" ".@proximal" ".@pursuant_to" ".@qua" ".@quadrual" ".@recent" ".@reciprocal" ".@reflexive" ".@regarding" ".@regardless_of" ".@regret" ".@relative" ".@relief" ".@remote" ".@repetition" ".@request" ".@result" ".@reverential" ".@right" ".@round" ".@same" ".@save" ".@side" ".@since" ".@single_quote" ".@singular" ".@slang" ".@so" ".@speculation" ".@speech" ".@square_bracket" ".@subsequent_to" ".@such" ".@suggestion" ".@superior" ".@surprise" ".@symploce" ".@synecdoche" ".@synesthesia" ".@taboo" ".@terminative" ".@than" ".@thanks_to" ".@that_of" ".@thing" ".@threat" ".@through" ".@throughout" ".@times" ".@title" ".@to" ".@top" ".@topic" ".@towards" ".@trial" ".@tuple" ".@under" ".@unit" ".@unless" ".@unlike" ".@until" ".@up" ".@upon" ".@verb" ".@versus" ".@vocative" ".@warning" ".@weariness" ".@wh" ".@with" ".@with_regard_to" ".@with_respect_to" ".@within" ".@without" ".@worth" ".@yes" ".@zoomorphism" ) ] . + +dash:ShapeClass a dash:ShapeClass ; + rdfs:label "Shape class" ; + dash:hidden true ; + rdfs:comment "A class that is also a node shape. This class can be used as rdf:type instead of the combination of rdfs:Class and sh:NodeShape." ; + rdfs:subClassOf rdfs:Class, + sh:NodeShape . + +dash:DASHJSLibrary a sh:JSLibrary ; + rdfs:label "DASH JavaScript library" ; + sh:jsLibrary dash:RDFQueryJSLibrary ; + sh:jsLibraryURL "http://datashapes.org/js/dash.js"^^xsd:anyURI . + +sh:SPARQLRule rdfs:subClassOf owl:Thing . + +unl:modality a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +<http://datashapes.org/dash> a owl:Ontology ; + rdfs:label "DASH Data Shapes Vocabulary" ; + rdfs:comment "DASH is a SHACL library for frequently needed features and design patterns. Almost all features in this library are 100% standards compliant and will work on any engine that fully supports SHACL." ; + owl:imports <http://topbraid.org/tosh>, + sh: ; + sh:declare [ sh:namespace "http://datashapes.org/dash#"^^xsd:anyURI ; + sh:prefix "dash" ], + [ sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; + sh:prefix "dcterms" ], + [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI ; + sh:prefix "xsd" ], + [ sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI ; + sh:prefix "owl" ], + [ sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI ; + sh:prefix "skos" ] . + +unl:manner a owl:Class ; + rdfs:subClassOf unl:Universal_Attribute . + +unl:Universal_Relation a owl:Class, + owl:ObjectProperty ; + rdfs:label "Universal Relation" ; + rdfs:comment """For detailled specifications about UNL Universal Relations, see : +http://www.unlweb.net/wiki/Universal_Relations + +Universal Relations, formerly known as "links", are labelled arcs connecting a node to another node in a UNL graph. They correspond to two-place semantic predicates holding between two Universal Words. In UNL, universal relations have been normally used to represent semantic cases or thematic roles (such as agent, object, instrument, etc.) between UWs. The repertoire of universal relations is defined in the UNL Specs and it is not open to frequent additions. + +Universal Relations are organized in a hierarchy where lower nodes subsume upper nodes. The topmost level is the relation "rel", which simply indicates that there is a semantic relation between two elements. + +Universal Relations as Object Properties are used only in UNL Knowledge Bases. In UNL graphs, you must use the reified versions of those properties in order to specify the scopes (and not only the sources and targets).""" ; + rdfs:domain unl:UNL_Node ; + rdfs:range unl:UNL_Node ; + rdfs:subClassOf unl:UNL_Structure ; + rdfs:subPropertyOf skos:semanticRelation, + unl:unlObjectProperty ; + skos:altLabel "universal relation" ; + skos:definition "Simply indicates that there is a semantic relation (unspecified) between two elements. Use the sub-properties to specify a semantic relation." . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/DefaultTargetId-20230123/tenet.log b/output/DefaultTargetId-20230123/tenet.log new file mode 100644 index 0000000000000000000000000000000000000000..ea23d7cc444271d056031bfcff8a2c43e0cb5575 --- /dev/null +++ b/output/DefaultTargetId-20230123/tenet.log @@ -0,0 +1,77 @@ +- INFO - [TENET] Extraction Processing +- INFO - === Process Initialization === +- INFO - -- current dir: /home/lamenji/Workspace/Tetras/tenet/tenet +- INFO - -- Process Setting +- INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/unlDocuments/dev/CCTP-SRSA-IP-20210831-R100/ (unl) +- INFO - ----- Base output dir: ./../output/ +- INFO - ----- Ontology target (id): DefaultTargetId +- DEBUG - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet +- DEBUG - ----- Config file: config.xml +- DEBUG - + *** Config (Full Parameters) *** + -- Base Parameters + ----- config file: config.xml + ----- uuid: DefaultTargetId + ----- source corpus: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/unlDocuments/dev/CCTP-SRSA-IP-20210831-R100/ + ----- target reference: base + ----- extraction engine: shacl + ----- process level: sentence + ----- source type: unl + -- Compositional Transduction Scheme (CTS) + ----- CTS reference: unl_cts_1 + -- Directories + ----- base directory: ./ + ----- structure directory: ./structure/ + ----- CTS directory: ./structure/cts/ + ----- target frame directory: ./../input/targetFrameStructure/ + ----- input document directory: + ----- base output dir: ./../output/ + ----- output directory: ./../output/DefaultTargetId-20230123/ + ----- sentence output directory: ./../output/DefaultTargetId-20230123/ + ----- SHACL binary directory: ./lib/shacl-1.3.2/bin + -- Config File Definition + ----- schema file: ./structure/unl-rdf-schema.ttl + ----- semantic net file: ./structure/semantic-net.ttl + ----- config param file: ./structure/config-parameters.ttl + ----- base ontology file: ./structure/base-ontology.ttl + ----- CTS file: ./structure/cts/shacl_unl_cts_1.ttl + ----- DASH file: ./structure/dash-data-shapes.ttl + -- Useful References for Ontology + ----- base URI: https://tenet.tetras-libre.fr/working + ----- ontology suffix: -ontology.ttl + ----- ontology seed suffix: -ontology-seed.ttl + -- Source File Definition + ----- source sentence file: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/unlDocuments/dev/CCTP-SRSA-IP-20210831-R100/**/*.ttl + -- Target File Definition + ----- frame ontology file: ./../input/targetFrameStructure/base-ontology.ttl + ----- frame ontology seed file: ./../input/targetFrameStructure/base-ontology-seed.ttl + -- Output + ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/ + ----- output file: ./../output/DefaultTargetId-20230123/DefaultTargetId.ttl + *** - *** +- INFO - -- Creating output target directory: ./../output/DefaultTargetId-20230123/ +- DEBUG - -- Counting number of graph files (sentences) +- DEBUG - ----- Graph count: 1 +- INFO - === Extraction Processing using SHACL Engine === +- DEBUG - -- Process level: document +- INFO - -- Work Structure Preparation +- DEBUG - --- Graph Initialization +- DEBUG - ----- Configuration Loading +- DEBUG - -------- RDF Schema (2323) +- DEBUG - -------- Semantic Net Definition (2530) +- DEBUG - -------- Config Parameter Definition (2564) +- DEBUG - ----- SHACL Specific Configuration Loading +- DEBUG - -------- Data Shapes Dash (4030) +- DEBUG - -------- SHACL CTS Loading +- DEBUG - ----------- ./structure/cts/shacl_unl_cts_1.ttl (4354) +- DEBUG - -------- All Schemes (4354) +- DEBUG - ----- Frame Ontology Loading +- DEBUG - -------- Base Ontology produced as output (4384) +- DEBUG - --- Source Data Import +- DEBUG - ----- Sentences Loading +- DEBUG - -------- Loaded sentence number: 1 +- DEBUG - --- Export work graph as turtle +- DEBUG - ----- Work graph file: ./../output/DefaultTargetId-20230123/DefaultTargetId.ttl +- DEBUG - --- Ending Structure Preparation +- DEBUG - ----- Total Execution Time = 0:00:00.730173 +- INFO - === Done === diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2.ttl new file mode 100644 index 0000000000000000000000000000000000000000..37e91a82b6a33d52c4137b10f29557033d81d162 --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2.ttl @@ -0,0 +1,911 @@ +@base <https://tenet.tetras-libre.fr/working/SolarSystemDev2> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns3: <http://amr.isi.edu/rdf/core-amr#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns3:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#d> a ns11:direct-02 ; + ns11:direct-02.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o2> . + +<http://amr.isi.edu/amr_data/SSC-02-01#h2> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m2> . + +<http://amr.isi.edu/amr_data/SSC-02-01#root01> a ns3:AMR ; + ns3:has-id "SSC-02-01" ; + ns3:has-sentence "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." ; + ns3:root <http://amr.isi.edu/amr_data/SSC-02-01#a> . + +<http://amr.isi.edu/amr_data/SSC-02-01#s4> a ns2:system ; + rdfs:label "Solar System" ; + ns2:part <http://amr.isi.edu/amr_data/SSC-02-01#b> . + +<http://amr.isi.edu/amr_data/test-1#root01> ns3:hasID "test-1" ; + ns3:hasSentence "The sun is a star." ; + ns3:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns3:hasID "test-2" ; + ns3:hasSentence "Earth is a planet." ; + ns3:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns11:direct-02.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG2 a ns11:FrameRole . + +ns11:have-degree-91.ARG3 a ns11:FrameRole . + +ns11:have-degree-91.ARG5 a ns11:FrameRole . + +ns11:orbit-01.ARG0 a ns11:FrameRole . + +ns11:orbit-01.ARG1 a ns11:FrameRole . + +ns11:remain-01.ARG1 a ns11:FrameRole . + +ns2:domain a ns3:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns2:mod a ns3:Role . + +ns2:op1 a ns3:Role . + +ns2:op2 a ns3:Role . + +ns2:op3 a ns3:Role . + +ns2:part a ns3:Role . + +ns3:hasID a owl:AnnotationProperty . + +ns3:hasSentence a owl:AnnotationProperty . + +ns3:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG0 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG1 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_name a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/SSC-02-01#a> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#r> . + +<http://amr.isi.edu/amr_data/SSC-02-01#a2> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + ns2:op3 <http://amr.isi.edu/amr_data/SSC-02-01#b> . + +<http://amr.isi.edu/amr_data/SSC-02-01#d2> a ns2:dwarf . + +<http://amr.isi.edu/amr_data/SSC-02-01#h> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + ns11:have-degree-91.ARG5 <http://amr.isi.edu/amr_data/SSC-02-01#o> . + +<http://amr.isi.edu/amr_data/SSC-02-01#l> a ns2:large . + +<http://amr.isi.edu/amr_data/SSC-02-01#m> a ns3:most . + +<http://amr.isi.edu/amr_data/SSC-02-01#m2> a ns3:more . + +<http://amr.isi.edu/amr_data/SSC-02-01#o2> a ns11:orbit-01 ; + ns11:orbit-01.ARG0 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + ns11:orbit-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#s> . + +<http://amr.isi.edu/amr_data/SSC-02-01#p> a <http://amr.isi.edu/entity-types#planet> ; + ns2:quant "8" . + +<http://amr.isi.edu/amr_data/SSC-02-01#p2> a <http://amr.isi.edu/entity-types#planet> ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#d2> . + +<http://amr.isi.edu/amr_data/SSC-02-01#r> a ns11:remain-01 ; + ns11:remain-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#a2> . + +<http://amr.isi.edu/amr_data/SSC-02-01#s> a ns2:sun . + +<http://amr.isi.edu/amr_data/SSC-02-01#s2> a ns2:small . + +<http://amr.isi.edu/amr_data/SSC-02-01#s3> a ns2:small . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns11:direct-02 a ns3:Frame . + +ns11:orbit-01 a ns3:Frame . + +ns11:remain-01 a ns3:Frame . + +ns2:body a ns3:Concept . + +ns2:dwarf a ns3:Concept . + +ns2:large a ns3:Concept . + +ns2:sun a ns3:Concept . + +ns2:system a ns3:Concept . + +ns3:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:NamedEntity a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:more a ns3:Concept . + +ns3:most a ns3:Concept . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +<http://amr.isi.edu/amr_data/SSC-02-01#b> a ns2:body ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#s3> . + +<http://amr.isi.edu/amr_data/SSC-02-01#o> a ns2:object . + +<http://amr.isi.edu/amr_data/SSC-02-01#o3> a ns2:object . + +<http://amr.isi.edu/entity-types#planet> a ns3:NamedEntity . + +ns11:have-degree-91 a ns3:Frame . + +ns2:object a ns3:Concept . + +ns2:small a ns3:Concept . + +ns3:and a ns3:Concept . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +ns3:Frame a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_Linked_Data a owl:Class . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +ns11:FrameRole a ns3:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl new file mode 100644 index 0000000000000000000000000000000000000000..3ce44acdfb0701e80abd575ca26aefd0b1d8cf59 --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl @@ -0,0 +1,194 @@ +@base <http://SolarSystemDev2/factoid> . +@prefix ns1: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix ns2: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +ns2:atomClass_body_b ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#body> . + +ns2:atomClass_large_l ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#large> . + +ns2:atomClass_object_o ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> . + +ns2:atomClass_object_o3 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> . + +ns2:atomClass_planet_p ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> . + +ns2:atomClass_planet_p2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> . + +ns2:atomClass_small_s2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small> . + +ns2:atomClass_sun_s ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#sun> . + +ns2:atomClass_system_s4 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> . + +ns2:atomProperty_direct_d ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> . + +ns2:atomProperty_hasPart_p9 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasPart> . + +ns2:atomProperty_more_m2 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#more> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#more> . + +ns2:atomProperty_most_m ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#most> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#most> . + +ns2:atomProperty_orbit_o2 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#orbit> . + +ns2:atomProperty_remain_r ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#remain-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#remain> . + +ns2:compositeClass_dwarf-planet_p2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#dwarf-planet> . + +ns2:compositeClass_object-orbiting-sun_o ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> . + +ns2:compositeClass_small-body_b ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small-body> . + +ns2:compositeClass_system-hasPart-small-body_s4 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> . + +ns2:compositeProperty_direct-orbit ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct-orbit> . + +ns2:individual_dwarf_d2 ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#dwarf> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_large_fromClass ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#large> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_small_fromClass ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_small_s3 ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_system_SolarSystem ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#solar-system> . + +<https://tenet.tetras-libre.fr/extract-result#direct> a owl:ObjectProperty ; + rdfs:label "direct" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-of> a owl:ObjectProperty ; + rdfs:label "direct-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-orbit> a owl:ObjectProperty ; + rdfs:label "direct-orbit" ; + rdfs:subPropertyOf <https://tenet.tetras-libre.fr/extract-result#orbit> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf> a owl:individual, + ns1:Feature ; + rdfs:label "dwarf" ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf-planet> a owl:Class ; + rdfs:label "dwarf-planet" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#planet> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> a owl:Class ; + rdfs:label "object-orbiting-sun" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ], + <https://tenet.tetras-libre.fr/extract-result#object> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain> a owl:ObjectProperty ; + rdfs:label "remain" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain-of> a owl:ObjectProperty ; + rdfs:label "remain-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#solar-system> a owl:individual, + <https://tenet.tetras-libre.fr/extract-result#system>, + <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> ; + rdfs:label "Solar System" ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#body> a owl:Class ; + rdfs:label "body" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#more> a owl:ObjectProperty ; + rdfs:label "more" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#most> a owl:ObjectProperty ; + rdfs:label "most" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit> a owl:ObjectProperty ; + rdfs:label "orbit" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit-of> a owl:ObjectProperty ; + rdfs:label "orbit-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#small-body> a owl:Class ; + rdfs:label "small-body" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#body> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#sun> a owl:Class ; + rdfs:label "sun" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> a owl:Class ; + rdfs:label "system-hasPart-small-body" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#small-body> ], + <https://tenet.tetras-libre.fr/extract-result#system> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#hasPart> a owl:ObjectProperty ; + rdfs:label "hasPart" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#large> a owl:Class, + owl:individual, + ns1:Feature, + <https://tenet.tetras-libre.fr/extract-result#large> ; + rdfs:label "large" ; + rdfs:subClassOf ns1:Undetermined_Thing ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object> a owl:Class ; + rdfs:label "object" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#planet> a owl:Class ; + rdfs:label "planet" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system> a owl:Class ; + rdfs:label "system" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#small> a owl:Class, + owl:individual, + ns1:Feature, + <https://tenet.tetras-libre.fr/extract-result#small> ; + rdfs:label "small" ; + rdfs:subClassOf ns1:Undetermined_Thing ; + ns1:fromStructure "SSC-02-01" . + diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_generation.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_generation.ttl new file mode 100644 index 0000000000000000000000000000000000000000..1a71102b0243f3b168a1a908ebde914553d7648c --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_generation.ttl @@ -0,0 +1,1956 @@ +@base <http://SolarSystemDev2/generation> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns3: <http://amr.isi.edu/rdf/core-amr#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns3:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns3:hasID "test-1" ; + ns3:hasSentence "The sun is a star." ; + ns3:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns3:hasID "test-2" ; + ns3:hasSentence "Earth is a planet." ; + ns3:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns11:direct-02.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG2 a ns11:FrameRole . + +ns11:have-degree-91.ARG3 a ns11:FrameRole . + +ns11:have-degree-91.ARG5 a ns11:FrameRole . + +ns11:orbit-01.ARG0 a ns11:FrameRole . + +ns11:orbit-01.ARG1 a ns11:FrameRole . + +ns11:remain-01.ARG1 a ns11:FrameRole . + +ns2:domain a ns3:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns2:mod a ns3:Role . + +ns2:op1 a ns3:Role . + +ns2:op2 a ns3:Role . + +ns2:op3 a ns3:Role . + +ns3:hasID a owl:AnnotationProperty . + +ns3:hasSentence a owl:AnnotationProperty . + +ns3:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_a2_op1_o3 a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a2_op2_p2 a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_a2_op3_b a :AMR_Edge ; + :hasAmrRole :role_op3 ; + :hasRoleID "op3" . + +:edge_a_op1_h a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a_op2_r a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_b_mod_s3 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_d_ARG1_o2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG1_o3 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG2_s2 a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h2_ARG3_m2 a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG1_p a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h_ARG2_l a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h_ARG3_m a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG5_o a :AMR_Edge ; + :hasAmrRole :role_ARG5 ; + :hasRoleID "ARG5" . + +:edge_o2_ARG0_o a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_o2_ARG1_s a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p2_mod_d2 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_p9_ARG0_s4 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p9_ARG1_b a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p_quant_8 a :AMR_Edge ; + :hasAmrRole :role_quant ; + :hasRoleID "quant" . + +:edge_r_ARG1_a2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_s4_name_SolarSystem a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:root_SSC-02-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#root01> ; + :hasRootLeaf :leaf_and_a ; + :hasSentenceID "SSC-02-01" ; + :hasSentenceStatement "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomProperty_direct_d a net:Atom_Property_Net ; + :role_ARG1 net:atomProperty_orbit_o2 ; + net:coverBaseNode :leaf_direct-02_d ; + net:coverNode :leaf_direct-02_d ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ; + net:hasPropertyName "direct" ; + net:hasPropertyName01 "directing" ; + net:hasPropertyName10 "direct-by" ; + net:hasPropertyName12 "direct-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_orbit-01_o2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:compositeProperty_direct-orbit a net:Composite_Property_Net ; + :role_ARG1 net:atomProperty_orbit_o2 ; + net:coverArgNode :leaf_orbit-01_o2 ; + net:coverBaseNode :leaf_direct-02_d ; + net:coverNode :leaf_direct-02_d, + :leaf_orbit-01_o2 ; + net:hasMotherClassNet net:atomProperty_orbit_o2 ; + net:hasPropertyName "direct-orbit" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct-orbit> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:individual_dwarf_d2 a net:Individual_Net ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "dwarf" ; + net:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#dwarf> ; + net:hasMotherClassNet net:atomClass_dwarf_d2 ; + net:hasMotherClassURI sys:Feature ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_dwarf_d2 ; + net:trackNetComposante net:atomClass_dwarf_d2 ; + net:trackProgress net:initialized . + +net:individual_small_s3 a net:Individual_Net ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "small" ; + net:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + net:hasMotherClassNet net:atomClass_small_s3 ; + net:hasMotherClassURI sys:Feature ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_small_s3 ; + net:trackNetComposante net:atomClass_small_s3 ; + net:trackProgress net:initialized . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:phenomena_conjunction-AND_a a net:Phenomena_Net ; + :role_op1 net:phenomena_degree_h ; + :role_op2 net:atomProperty_remain_r ; + net:coverBaseNode :leaf_and_a ; + net:coverNode :leaf_and_a ; + net:hasPhenomenaRef "and" ; + net:hasPhenomenaType :phenomena_conjunction_and ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:phenomena_degree_h2 a net:Phenomena_Net ; + :role_ARG1 net:atomClass_object_o3 ; + :role_ARG2 net:atomClass_small_s2, + net:individual_small_fromClass ; + :role_ARG3 net:atomProperty_more_m2 ; + net:coverBaseNode :leaf_have-degree-91_h2 ; + net:coverNode :leaf_have-degree-91_h2 ; + net:hasPhenomenaRef "have-degree-91" ; + net:hasPhenomenaType :phenomena_degree ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/SSC-02-01#d> a ns11:direct-02 ; + ns11:direct-02.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h2> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#root01> a ns3:AMR ; + ns3:has-id "SSC-02-01" ; + ns3:has-sentence "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." ; + ns3:root <http://amr.isi.edu/amr_data/SSC-02-01#a> . + +<http://amr.isi.edu/amr_data/SSC-02-01#s4> a ns2:system ; + rdfs:label "Solar System" ; + ns2:part <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns3:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:NamedEntity a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:concept_body rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:body ; + :label "body" . + +:concept_direct-02 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:direct-02 ; + :label "direct-02" . + +:concept_dwarf rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:dwarf ; + :label "dwarf" . + +:concept_large rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:large ; + :label "large" . + +:concept_more rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:more ; + :label "more" . + +:concept_most rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:most ; + :label "most" . + +:concept_orbit-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:orbit-01 ; + :label "orbit-01" . + +:concept_part rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns2:part ; + :isReifiedConcept true ; + :label "hasPart" . + +:concept_remain-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:remain-01 ; + :label "remain-01" . + +:concept_sun rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:sun ; + :label "sun" . + +:concept_system rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:system ; + :label "system" . + +:role_ARG5 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_op3 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_quant a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:value_8 a :AMR_Value ; + rdfs:label "p" . + +:value_SolarSystem a :AMR_Value ; + rdfs:label "Solar System" . + +:variable_a a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a> ; + :label "a" . + +:variable_a2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + :label "a2" . + +:variable_b a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + :label "b" . + +:variable_d a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d> ; + :label "d" . + +:variable_d2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + :label "d2" . + +:variable_h a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + :label "h" . + +:variable_h2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h2> ; + :label "h2" . + +:variable_l a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + :label "l" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + :label "m" . + +:variable_m2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + :label "m2" . + +:variable_o a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + :label "o" . + +:variable_o2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + :label "o2" . + +:variable_o3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + :label "o3" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + :label "p" . + +:variable_p2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + :label "p2" . + +:variable_p9 a ns2:part, + :AMR_Variable ; + :isReifiedVariable true ; + :label "p9" . + +:variable_r a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + :label "r" . + +:variable_s a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + :label "s" . + +:variable_s2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + :label "s2" . + +:variable_s3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + :label "s3" . + +:variable_s4 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s4> ; + :label "s4" ; + :name "Solar System" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +<https://tenet.tetras-libre.fr/extract-result#direct> a owl:ObjectProperty ; + rdfs:label "direct" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-of> a owl:ObjectProperty ; + rdfs:label "direct-of" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-orbit> a owl:ObjectProperty ; + rdfs:label "direct-orbit" ; + rdfs:subPropertyOf <https://tenet.tetras-libre.fr/extract-result#orbit> ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf> a owl:individual, + sys:Feature ; + rdfs:label "dwarf" ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf-planet> a owl:Class ; + rdfs:label "dwarf-planet" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#planet> ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> a owl:Class ; + rdfs:label "object-orbiting-sun" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ], + <https://tenet.tetras-libre.fr/extract-result#object> ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain> a owl:ObjectProperty ; + rdfs:label "remain" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain-of> a owl:ObjectProperty ; + rdfs:label "remain-of" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#solar-system> a owl:individual, + <https://tenet.tetras-libre.fr/extract-result#system>, + <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> ; + rdfs:label "Solar System" ; + sys:fromStructure "SSC-02-01" . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_planet_p a net:Atom_Class_Net ; + :role_quant net:value_p_blankNode ; + net:coverBaseNode :leaf_planet_p ; + net:coverNode :leaf_planet_p ; + net:coverNodeCount 1 ; + net:hasClassName "planet" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_hasPart_p9 a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_system_s4, + net:compositeClass_system-hasPart-small-body_s4, + net:individual_system_SolarSystem ; + :role_ARG1 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:coverBaseNode :leaf_hasPart_p9 ; + net:coverNode :leaf_hasPart_p9 ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + net:hasPropertyName "hasPart" ; + net:hasPropertyName01 "hasPart" ; + net:hasPropertyName10 "hasPart" ; + net:hasPropertyName12 "hasPart" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_body_b, + :leaf_system_s4 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_more_m2 a net:Atom_Property_Net ; + net:coverBaseNode :leaf_more_m2 ; + net:coverNode :leaf_more_m2 ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#more> ; + net:hasPropertyName "more" ; + net:hasPropertyName01 "more" ; + net:hasPropertyName10 "more" ; + net:hasPropertyName12 "more" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#more> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_most_m a net:Atom_Property_Net ; + net:coverBaseNode :leaf_most_m ; + net:coverNode :leaf_most_m ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#most> ; + net:hasPropertyName "most" ; + net:hasPropertyName01 "most" ; + net:hasPropertyName10 "most" ; + net:hasPropertyName12 "most" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#most> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_large_fromClass a net:Individual_Net ; + net:coverBaseNode :leaf_large_l ; + net:coverNode :leaf_large_l ; + net:fromClassNet net:atomClass_large_l ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "large" ; + net:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#large> ; + net:hasMotherClassNet net:atomClass_large_l ; + net:hasMotherClassURI sys:Feature ; + net:hasStructure "SSC-02-01" . + +net:individual_small_fromClass a net:Individual_Net ; + net:coverBaseNode :leaf_small_s2 ; + net:coverNode :leaf_small_s2 ; + net:fromClassNet net:atomClass_small_s2 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "small" ; + net:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + net:hasMotherClassNet net:atomClass_small_s2 ; + net:hasMotherClassURI sys:Feature ; + net:hasStructure "SSC-02-01" . + +net:individual_system_SolarSystem a net:Individual_Net ; + :role_name net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_system_s4 ; + net:hasIndividualLabel "Solar System" ; + net:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#solar-system> ; + net:hasMotherClassName net:atomClass_system_s4 ; + net:hasMotherClassNet net:atomClass_system_s4, + net:compositeClass_system-hasPart-small-body_s4 ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:logicalSet_and_a2 a net:Logical_Set_Net ; + :role_op1 net:atomClass_object_o3 ; + :role_op2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + :role_op3 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:bindPropertyNet net:atomProperty_remain_r ; + net:bindRestriction net:restriction_remain_dwarf-planet, + net:restriction_remain_object, + net:restriction_remain_small-body ; + net:containsNet net:atomClass_body_b, + net:atomClass_object_o3, + net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2, + net:compositeClass_small-body_b ; + net:containsNet1 net:atomClass_object_o3 ; + net:containsNet2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + net:coverBaseNode :leaf_and_a2 ; + net:coverNode :leaf_and_a2 ; + net:hasLogicalConstraint "AND" ; + net:hasNaming "remain-object-and-dwarf-planet-etc" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_conjunction-AND_a2 a net:Phenomena_Net ; + :role_op1 net:atomClass_object_o3 ; + :role_op2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + :role_op3 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:coverBaseNode :leaf_and_a2 ; + net:coverNode :leaf_and_a2 ; + net:hasPhenomenaRef "and" ; + net:hasPhenomenaType :phenomena_conjunction_and ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:phenomena_degree_h a net:Phenomena_Net ; + :role_ARG1 net:atomClass_planet_p ; + :role_ARG2 net:atomClass_large_l, + net:individual_large_fromClass ; + :role_ARG3 net:atomProperty_most_m ; + :role_ARG5 net:atomClass_object_o, + net:compositeClass_object-orbiting-sun_o ; + net:coverBaseNode :leaf_have-degree-91_h ; + net:coverNode :leaf_have-degree-91_h ; + net:hasPhenomenaRef "have-degree-91" ; + net:hasPhenomenaType :phenomena_degree ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:restriction_hasPart_small-body a net:Restriction_Net ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3, + :leaf_system_s4 ; + net:coverTargetNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3 ; + net:hasRestrictionNetValue net:compositeClass_small-body_b ; + net:hasRestrictionOnProperty net:atomProperty_hasPart_p9 . + +net:restriction_orbiting_sun a net:Restriction_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o, + :leaf_orbit-01_o2, + :leaf_sun_s ; + net:coverTargetNode :leaf_orbit-01_o2, + :leaf_sun_s ; + net:hasRestrictionNetValue net:atomClass_sun_s ; + net:hasRestrictionOnProperty net:atomProperty_orbit_o2 . + +net:restriction_remain_dwarf-planet a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_dwarf_d2, + :leaf_planet_p2, + :leaf_remain-01_r ; + net:hasRestrictionNetValue net:compositeClass_dwarf-planet_p2 ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:restriction_remain_object a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_object_o3, + :leaf_remain-01_r ; + net:hasRestrictionNetValue net:atomClass_object_o3 ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:restriction_remain_small-body a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_body_b, + :leaf_remain-01_r, + :leaf_small_s3 ; + net:hasRestrictionNetValue net:compositeClass_small-body_b ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:value_p_blankNode a net:Value_Net ; + net:hasStructure "SSC-02-01" ; + net:hasValueLabel "p" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-02-01#a> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#a2> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + ns2:op3 <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#d2> a ns2:dwarf ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + ns11:have-degree-91.ARG5 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#l> a ns2:large ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m> a ns3:most ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m2> a ns3:more ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o2> a ns11:orbit-01 ; + ns11:orbit-01.ARG0 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + ns11:orbit-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p> a <http://amr.isi.edu/entity-types#planet> ; + ns2:quant "8" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p2> a <http://amr.isi.edu/entity-types#planet> ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#r> a ns11:remain-01 ; + ns11:remain-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s> a ns2:sun ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s2> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s3> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:direct-02 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:orbit-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:remain-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:body a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:dwarf a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:large a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:part a ns3:Role ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:sun a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:system a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:more a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:most a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_and rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns3:and ; + :hasPhenomenaLink :phenomena_conjunction_and ; + :label "and" . + +:concept_have-degree-91 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns11:have-degree-91 ; + :hasPhenomenaLink :phenomena_degree ; + :label "have-degree-91" . + +:concept_object rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:object ; + :label "object" . + +:concept_planet rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk <http://amr.isi.edu/entity-types#planet> ; + :label "planet" . + +:concept_small rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:small ; + :label "small" . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_have-degree-91_h2 a :AMR_Leaf ; + :edge_h2_ARG1_o3 :leaf_object_o3 ; + :edge_h2_ARG2_s2 :leaf_small_s2 ; + :edge_h2_ARG3_m2 :leaf_more_m2 ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h2 . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:role_ARG0 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_mod a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +<https://tenet.tetras-libre.fr/extract-result#body> a owl:Class ; + rdfs:label "body" ; + rdfs:subClassOf sys:Entity ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#more> a owl:ObjectProperty ; + rdfs:label "more" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#most> a owl:ObjectProperty ; + rdfs:label "most" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit> a owl:ObjectProperty ; + rdfs:label "orbit" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit-of> a owl:ObjectProperty ; + rdfs:label "orbit-of" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#small-body> a owl:Class ; + rdfs:label "small-body" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#body> ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#sun> a owl:Class ; + rdfs:label "sun" ; + rdfs:subClassOf sys:Entity ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> a owl:Class ; + rdfs:label "system-hasPart-small-body" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#small-body> ], + <https://tenet.tetras-libre.fr/extract-result#system> ; + sys:fromStructure "SSC-02-01" . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_sun_s a net:Atom_Class_Net ; + net:coverBaseNode :leaf_sun_s ; + net:coverNode :leaf_sun_s ; + net:coverNodeCount 1 ; + net:hasClassName "sun" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#sun> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_object-orbiting-sun_o a net:Composite_Class_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o, + :leaf_orbit-01_o2, + :leaf_sun_s ; + net:coverNodeCount 3 ; + net:hasClassName "object-orbiting-sun" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> ; + net:hasMotherClassNet net:atomClass_object_o ; + net:hasRestriction01 net:restriction_orbiting_sun ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_system-hasPart-small-body_s4 a net:Composite_Class_Net ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3, + :leaf_system_s4 ; + net:coverNodeCount 4 ; + net:hasClassName "system-hasPart-small-body" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> ; + net:hasMotherClassNet net:atomClass_system_s4 ; + net:hasRestriction01 net:restriction_hasPart_small-body ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +net:value_SolarSystem_blankNode a net:Value_Net ; + net:hasStructure "SSC-02-01" ; + net:hasValueLabel "Solar System" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-02-01#b> a ns2:body ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o3> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/entity-types#planet> a ns3:NamedEntity ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:have-degree-91 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:object a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:small a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:and a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_and_a a :AMR_Leaf ; + :edge_a_op1_h :leaf_have-degree-91_h ; + :edge_a_op2_r :leaf_remain-01_r ; + :hasConcept :concept_and ; + :hasVariable :variable_a . + +:leaf_have-degree-91_h a :AMR_Leaf ; + :edge_h_ARG1_p :leaf_planet_p ; + :edge_h_ARG2_l :leaf_large_l ; + :edge_h_ARG3_m :leaf_most_m ; + :edge_h_ARG5_o :leaf_object_o ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h . + +:leaf_more_m2 a :AMR_Leaf ; + :hasConcept :concept_more ; + :hasVariable :variable_m2 . + +:leaf_most_m a :AMR_Leaf ; + :hasConcept :concept_most ; + :hasVariable :variable_m . + +:leaf_planet_p a :AMR_Leaf ; + :edge_p_quant_8 :value_8 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +<https://tenet.tetras-libre.fr/extract-result#hasPart> a owl:ObjectProperty ; + rdfs:label "hasPart" ; + rdfs:subPropertyOf sys:Out_ObjectProperty ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#large> a owl:Class, + owl:individual, + sys:Feature, + <https://tenet.tetras-libre.fr/extract-result#large> ; + rdfs:label "large" ; + rdfs:subClassOf sys:Undetermined_Thing ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object> a owl:Class ; + rdfs:label "object" ; + rdfs:subClassOf sys:Entity ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#planet> a owl:Class ; + rdfs:label "planet" ; + rdfs:subClassOf sys:Entity ; + sys:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system> a owl:Class ; + rdfs:label "system" ; + rdfs:subClassOf sys:Entity ; + sys:fromStructure "SSC-02-01" . + +net:atomClass_large_l a net:Atom_Class_Net ; + net:coverBaseNode :leaf_large_l ; + net:coverNode :leaf_large_l ; + net:coverNodeCount 1 ; + net:hasClassName "large" ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#large> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_object_o a net:Atom_Class_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o ; + net:coverNodeCount 1 ; + net:hasClassName "object" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_small_s2 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_small_s2 ; + net:coverNode :leaf_small_s2 ; + net:coverNodeCount 1 ; + net:hasClassName "small" ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +ns3:Frame a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_direct-02_d a :AMR_Leaf ; + :edge_d_ARG1_o2 :leaf_orbit-01_o2 ; + :hasConcept :concept_direct-02 ; + :hasVariable :variable_d . + +<https://tenet.tetras-libre.fr/extract-result#small> a owl:Class, + owl:individual, + sys:Feature, + <https://tenet.tetras-libre.fr/extract-result#small> ; + rdfs:label "small" ; + rdfs:subClassOf sys:Undetermined_Thing ; + sys:fromStructure "SSC-02-01" . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_system_s4 a net:Atom_Class_Net ; + :role_name net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_system_s4 ; + net:coverNodeCount 1 ; + net:hasClassName "system" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_orbit_o2 a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_object_o, + net:compositeClass_object-orbiting-sun_o ; + :role_ARG1 net:atomClass_sun_s ; + net:coverBaseNode :leaf_orbit-01_o2 ; + net:coverNode :leaf_orbit-01_o2 ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + net:hasPropertyName "orbit" ; + net:hasPropertyName01 "orbiting" ; + net:hasPropertyName10 "orbit-by" ; + net:hasPropertyName12 "orbit-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#orbit> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_object_o, + :leaf_sun_s ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_hasPart_p9 a :AMR_Leaf ; + :edge_p9_ARG0_s4 :leaf_system_s4 ; + :edge_p9_ARG1_b :leaf_body_b ; + :hasConcept :concept_part ; + :hasVariable :variable_p9 ; + :isReifiedLeaf true . + +:leaf_large_l a :AMR_Leaf ; + :hasConcept :concept_large ; + :hasVariable :variable_l . + +:leaf_object_o3 a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o3 . + +:leaf_small_s2 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s2 . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomProperty_remain_r a net:Atom_Property_Net ; + :role_ARG1 net:atomClass_body_b, + net:atomClass_object_o3, + net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2, + net:compositeClass_small-body_b, + net:logicalSet_and_a2, + net:phenomena_conjunction-AND_a2 ; + net:coverBaseNode :leaf_remain-01_r ; + net:coverNode :leaf_remain-01_r ; + net:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#remain-of> ; + net:hasPropertyName "remain" ; + net:hasPropertyName01 "remaining" ; + net:hasPropertyName10 "remain-by" ; + net:hasPropertyName12 "remain-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#remain> ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_and_a2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Structure a owl:Class . + +:leaf_planet_p2 a :AMR_Leaf ; + :edge_p2_mod_d2 :leaf_dwarf_d2 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p2 . + +:leaf_remain-01_r a :AMR_Leaf ; + :edge_r_ARG1_a2 :leaf_and_a2 ; + :hasConcept :concept_remain-01 ; + :hasVariable :variable_r . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:atomClass_dwarf_d2 a net:Atom_Class_Net, + net:Deprecated_Net ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:coverNodeCount 1 ; + net:hasClassName "dwarf" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_small_s3 a net:Atom_Class_Net, + net:Deprecated_Net ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:coverNodeCount 1 ; + net:hasClassName "small" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_dwarf-planet_p2 a net:Composite_Class_Net ; + :role_mod net:atomClass_dwarf_d2 ; + net:coverBaseNode :leaf_planet_p2 ; + net:coverNode :leaf_dwarf_d2, + :leaf_planet_p2 ; + net:coverNodeCount 2 ; + net:hasClassName "dwarf-planet" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#dwarf-planet> ; + net:hasMotherClassNet net:atomClass_planet_p2 ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_planet_p2 ; + net:trackNetComposante net:atomClass_dwarf_d2, + net:atomClass_planet_p2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_dwarf_d2 a :AMR_Leaf ; + :hasConcept :concept_dwarf ; + :hasVariable :variable_d2 . + +:leaf_sun_s a :AMR_Leaf ; + :hasConcept :concept_sun ; + :hasVariable :variable_s . + +net:atomClass_object_o3 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_object_o3 ; + net:coverNode :leaf_object_o3 ; + net:coverNodeCount 1 ; + net:hasClassName "object" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_small-body_b a net:Composite_Class_Net ; + :role_mod net:atomClass_small_s3 ; + net:coverBaseNode :leaf_body_b ; + net:coverNode :leaf_body_b, + :leaf_small_s3 ; + net:coverNodeCount 2 ; + net:hasClassName "small-body" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small-body> ; + net:hasMotherClassNet net:atomClass_body_b ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_body_b ; + net:trackNetComposante net:atomClass_body_b, + net:atomClass_small_s3 ; + net:trackProgress net:initialized, + net:relation_propagated . + +ns11:FrameRole a ns3:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:atomClass_body_b a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_mod net:atomClass_small_s3 ; + net:coverBaseNode :leaf_body_b ; + net:coverNode :leaf_body_b ; + net:coverNodeCount 1 ; + net:hasClassName "body" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#body> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_planet_p2 a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_mod net:atomClass_dwarf_d2 ; + net:coverBaseNode :leaf_planet_p2 ; + net:coverNode :leaf_planet_p2 ; + net:coverNodeCount 1 ; + net:hasClassName "planet" ; + net:hasClassType sys:Entity ; + net:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_and_a2 a :AMR_Leaf ; + :edge_a2_op1_o3 :leaf_object_o3 ; + :edge_a2_op2_p2 :leaf_planet_p2 ; + :edge_a2_op3_b :leaf_body_b ; + :hasConcept :concept_and ; + :hasVariable :variable_a2 . + +:leaf_object_o a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o . + +:leaf_orbit-01_o2 a :AMR_Leaf ; + :edge_o2_ARG0_o :leaf_object_o ; + :edge_o2_ARG1_s :leaf_sun_s ; + :hasConcept :concept_orbit-01 ; + :hasVariable :variable_o2 . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_small_s3 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s3 . + +:leaf_system_s4 a :AMR_Leaf ; + :edge_s4_name_SolarSystem :value_SolarSystem ; + :hasConcept :concept_system ; + :hasVariable :variable_s4 . + +:leaf_body_b a :AMR_Leaf ; + :edge_b_mod_s3 :leaf_small_s3 ; + :hasConcept :concept_body ; + :hasVariable :variable_b . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Linked_Data a owl:Class . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl new file mode 100644 index 0000000000000000000000000000000000000000..890e3bb65c3f549339dce0359773f8aef0b069bc --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl @@ -0,0 +1,1307 @@ +@base <http://SolarSystemDev2/preprocessing> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns3: <http://amr.isi.edu/rdf/core-amr#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns3:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns3:hasID "test-1" ; + ns3:hasSentence "The sun is a star." ; + ns3:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns3:hasID "test-2" ; + ns3:hasSentence "Earth is a planet." ; + ns3:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns11:direct-02.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG2 a ns11:FrameRole . + +ns11:have-degree-91.ARG3 a ns11:FrameRole . + +ns11:have-degree-91.ARG5 a ns11:FrameRole . + +ns11:orbit-01.ARG0 a ns11:FrameRole . + +ns11:orbit-01.ARG1 a ns11:FrameRole . + +ns11:remain-01.ARG1 a ns11:FrameRole . + +ns2:domain a ns3:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns2:mod a ns3:Role . + +ns2:op1 a ns3:Role . + +ns2:op2 a ns3:Role . + +ns2:op3 a ns3:Role . + +ns3:hasID a owl:AnnotationProperty . + +ns3:hasSentence a owl:AnnotationProperty . + +ns3:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_a2_op1_o3 a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a2_op2_p2 a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_a2_op3_b a :AMR_Edge ; + :hasAmrRole :role_op3 ; + :hasRoleID "op3" . + +:edge_a_op1_h a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a_op2_r a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_b_mod_s3 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_d_ARG1_o2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG1_o3 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG2_s2 a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h2_ARG3_m2 a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG1_p a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h_ARG2_l a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h_ARG3_m a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG5_o a :AMR_Edge ; + :hasAmrRole :role_ARG5 ; + :hasRoleID "ARG5" . + +:edge_o2_ARG0_o a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_o2_ARG1_s a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p2_mod_d2 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_p9_ARG0_s4 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p9_ARG1_b a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p_quant_8 a :AMR_Edge ; + :hasAmrRole :role_quant ; + :hasRoleID "quant" . + +:edge_r_ARG1_a2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_s4_name_SolarSystem a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_direct-02_d a :AMR_Leaf ; + :edge_d_ARG1_o2 :leaf_orbit-01_o2 ; + :hasConcept :concept_direct-02 ; + :hasVariable :variable_d . + +:leaf_hasPart_p9 a :AMR_Leaf ; + :edge_p9_ARG0_s4 :leaf_system_s4 ; + :edge_p9_ARG1_b :leaf_body_b ; + :hasConcept :concept_part ; + :hasVariable :variable_p9 ; + :isReifiedLeaf true . + +:leaf_have-degree-91_h2 a :AMR_Leaf ; + :edge_h2_ARG1_o3 :leaf_object_o3 ; + :edge_h2_ARG2_s2 :leaf_small_s2 ; + :edge_h2_ARG3_m2 :leaf_more_m2 ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h2 . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:root_SSC-02-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#root01> ; + :hasRootLeaf :leaf_and_a ; + :hasSentenceID "SSC-02-01" ; + :hasSentenceStatement "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/SSC-02-01#d> a ns11:direct-02 ; + ns11:direct-02.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h2> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#root01> a ns3:AMR ; + ns3:has-id "SSC-02-01" ; + ns3:has-sentence "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." ; + ns3:root <http://amr.isi.edu/amr_data/SSC-02-01#a> . + +<http://amr.isi.edu/amr_data/SSC-02-01#s4> a ns2:system ; + rdfs:label "Solar System" ; + ns2:part <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns3:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:NamedEntity a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:concept_body rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:body ; + :label "body" . + +:concept_direct-02 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:direct-02 ; + :label "direct-02" . + +:concept_dwarf rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:dwarf ; + :label "dwarf" . + +:concept_large rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:large ; + :label "large" . + +:concept_more rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:more ; + :label "more" . + +:concept_most rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:most ; + :label "most" . + +:concept_orbit-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:orbit-01 ; + :label "orbit-01" . + +:concept_part rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns2:part ; + :isReifiedConcept true ; + :label "hasPart" . + +:concept_remain-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:remain-01 ; + :label "remain-01" . + +:concept_sun rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:sun ; + :label "sun" . + +:concept_system rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:system ; + :label "system" . + +:leaf_and_a a :AMR_Leaf ; + :edge_a_op1_h :leaf_have-degree-91_h ; + :edge_a_op2_r :leaf_remain-01_r ; + :hasConcept :concept_and ; + :hasVariable :variable_a . + +:leaf_and_a2 a :AMR_Leaf ; + :edge_a2_op1_o3 :leaf_object_o3 ; + :edge_a2_op2_p2 :leaf_planet_p2 ; + :edge_a2_op3_b :leaf_body_b ; + :hasConcept :concept_and ; + :hasVariable :variable_a2 . + +:leaf_dwarf_d2 a :AMR_Leaf ; + :hasConcept :concept_dwarf ; + :hasVariable :variable_d2 . + +:leaf_have-degree-91_h a :AMR_Leaf ; + :edge_h_ARG1_p :leaf_planet_p ; + :edge_h_ARG2_l :leaf_large_l ; + :edge_h_ARG3_m :leaf_most_m ; + :edge_h_ARG5_o :leaf_object_o ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h . + +:leaf_large_l a :AMR_Leaf ; + :hasConcept :concept_large ; + :hasVariable :variable_l . + +:leaf_more_m2 a :AMR_Leaf ; + :hasConcept :concept_more ; + :hasVariable :variable_m2 . + +:leaf_most_m a :AMR_Leaf ; + :hasConcept :concept_most ; + :hasVariable :variable_m . + +:leaf_orbit-01_o2 a :AMR_Leaf ; + :edge_o2_ARG0_o :leaf_object_o ; + :edge_o2_ARG1_s :leaf_sun_s ; + :hasConcept :concept_orbit-01 ; + :hasVariable :variable_o2 . + +:leaf_planet_p a :AMR_Leaf ; + :edge_p_quant_8 :value_8 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p . + +:leaf_planet_p2 a :AMR_Leaf ; + :edge_p2_mod_d2 :leaf_dwarf_d2 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p2 . + +:leaf_remain-01_r a :AMR_Leaf ; + :edge_r_ARG1_a2 :leaf_and_a2 ; + :hasConcept :concept_remain-01 ; + :hasVariable :variable_r . + +:leaf_small_s2 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s2 . + +:leaf_small_s3 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s3 . + +:leaf_sun_s a :AMR_Leaf ; + :hasConcept :concept_sun ; + :hasVariable :variable_s . + +:leaf_system_s4 a :AMR_Leaf ; + :edge_s4_name_SolarSystem :value_SolarSystem ; + :hasConcept :concept_system ; + :hasVariable :variable_s4 . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_name a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:value_8 a :AMR_Value ; + rdfs:label "p" . + +:value_SolarSystem a :AMR_Value ; + rdfs:label "Solar System" . + +:variable_a a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a> ; + :label "a" . + +:variable_a2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + :label "a2" . + +:variable_b a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + :label "b" . + +:variable_d a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d> ; + :label "d" . + +:variable_d2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + :label "d2" . + +:variable_h a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + :label "h" . + +:variable_h2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h2> ; + :label "h2" . + +:variable_l a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + :label "l" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + :label "m" . + +:variable_m2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + :label "m2" . + +:variable_o a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + :label "o" . + +:variable_o2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + :label "o2" . + +:variable_o3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + :label "o3" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + :label "p" . + +:variable_p2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + :label "p2" . + +:variable_p9 a ns2:part, + :AMR_Variable ; + :isReifiedVariable true ; + :label "p9" . + +:variable_r a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + :label "r" . + +:variable_s a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + :label "s" . + +:variable_s2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + :label "s2" . + +:variable_s3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + :label "s3" . + +:variable_s4 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s4> ; + :label "s4" ; + :name "Solar System" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +<http://amr.isi.edu/amr_data/SSC-02-01#a> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#a2> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + ns2:op3 <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#d2> a ns2:dwarf ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + ns11:have-degree-91.ARG5 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#l> a ns2:large ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m> a ns3:most ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m2> a ns3:more ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o2> a ns11:orbit-01 ; + ns11:orbit-01.ARG0 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + ns11:orbit-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p> a <http://amr.isi.edu/entity-types#planet> ; + ns2:quant "8" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p2> a <http://amr.isi.edu/entity-types#planet> ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#r> a ns11:remain-01 ; + ns11:remain-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s> a ns2:sun ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s2> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s3> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:direct-02 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:orbit-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:remain-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:body a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:dwarf a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:large a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:part a ns3:Role ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:sun a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:system a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:more a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:most a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_and rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns3:and ; + :hasPhenomenaLink :phenomena_conjunction_and ; + :label "and" . + +:concept_have-degree-91 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns11:have-degree-91 ; + :hasPhenomenaLink :phenomena_degree ; + :label "have-degree-91" . + +:concept_object rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:object ; + :label "object" . + +:concept_planet rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk <http://amr.isi.edu/entity-types#planet> ; + :label "planet" . + +:concept_small rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:small ; + :label "small" . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_body_b a :AMR_Leaf ; + :edge_b_mod_s3 :leaf_small_s3 ; + :hasConcept :concept_body ; + :hasVariable :variable_b . + +:leaf_object_o a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o . + +:leaf_object_o3 a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o3 . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:role_ARG0 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +<http://amr.isi.edu/amr_data/SSC-02-01#b> a ns2:body ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o3> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/entity-types#planet> a ns3:NamedEntity ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:have-degree-91 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:object a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:small a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:and a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +ns3:Frame a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Structure a owl:Class . + +:role_ARG1 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +ns11:FrameRole a ns3:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Linked_Data a owl:Class . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl new file mode 100644 index 0000000000000000000000000000000000000000..7334f555c87c2f34ff4b9937c59a7cb6782bb881 --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl @@ -0,0 +1,1793 @@ +@base <http://SolarSystemDev2/transduction> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns3: <http://amr.isi.edu/rdf/core-amr#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns3:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns3:hasID "test-1" ; + ns3:hasSentence "The sun is a star." ; + ns3:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns3:hasID "test-2" ; + ns3:hasSentence "Earth is a planet." ; + ns3:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns11:direct-02.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG1 a ns11:FrameRole . + +ns11:have-degree-91.ARG2 a ns11:FrameRole . + +ns11:have-degree-91.ARG3 a ns11:FrameRole . + +ns11:have-degree-91.ARG5 a ns11:FrameRole . + +ns11:orbit-01.ARG0 a ns11:FrameRole . + +ns11:orbit-01.ARG1 a ns11:FrameRole . + +ns11:remain-01.ARG1 a ns11:FrameRole . + +ns2:domain a ns3:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns2:mod a ns3:Role . + +ns2:op1 a ns3:Role . + +ns2:op2 a ns3:Role . + +ns2:op3 a ns3:Role . + +ns3:hasID a owl:AnnotationProperty . + +ns3:hasSentence a owl:AnnotationProperty . + +ns3:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_a2_op1_o3 a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a2_op2_p2 a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_a2_op3_b a :AMR_Edge ; + :hasAmrRole :role_op3 ; + :hasRoleID "op3" . + +:edge_a_op1_h a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a_op2_r a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_b_mod_s3 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_d_ARG1_o2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG1_o3 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h2_ARG2_s2 a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h2_ARG3_m2 a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG1_p a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_h_ARG2_l a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_h_ARG3_m a :AMR_Edge ; + :hasAmrRole :role_ARG3 ; + :hasRoleID "ARG3" . + +:edge_h_ARG5_o a :AMR_Edge ; + :hasAmrRole :role_ARG5 ; + :hasRoleID "ARG5" . + +:edge_o2_ARG0_o a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_o2_ARG1_s a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p2_mod_d2 a :AMR_Edge ; + :hasAmrRole :role_mod ; + :hasRoleID "mod" . + +:edge_p9_ARG0_s4 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p9_ARG1_b a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p_quant_8 a :AMR_Edge ; + :hasAmrRole :role_quant ; + :hasRoleID "quant" . + +:edge_r_ARG1_a2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_s4_name_SolarSystem a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:root_SSC-02-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#root01> ; + :hasRootLeaf :leaf_and_a ; + :hasSentenceID "SSC-02-01" ; + :hasSentenceStatement "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomProperty_direct_d a net:Atom_Property_Net ; + :role_ARG1 net:atomProperty_orbit_o2 ; + net:coverBaseNode :leaf_direct-02_d ; + net:coverNode :leaf_direct-02_d ; + net:hasPropertyName "direct" ; + net:hasPropertyName01 "directing" ; + net:hasPropertyName10 "direct-by" ; + net:hasPropertyName12 "direct-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_orbit-01_o2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:compositeProperty_direct-orbit a net:Composite_Property_Net ; + :role_ARG1 net:atomProperty_orbit_o2 ; + net:coverArgNode :leaf_orbit-01_o2 ; + net:coverBaseNode :leaf_direct-02_d ; + net:coverNode :leaf_direct-02_d, + :leaf_orbit-01_o2 ; + net:hasMotherClassNet net:atomProperty_orbit_o2 ; + net:hasPropertyName "direct-orbit" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:individual_dwarf_d2 a net:Individual_Net ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "dwarf" ; + net:hasMotherClassNet net:atomClass_dwarf_d2 ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_dwarf_d2 ; + net:trackNetComposante net:atomClass_dwarf_d2 ; + net:trackProgress net:initialized . + +net:individual_small_s3 a net:Individual_Net ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "small" ; + net:hasMotherClassNet net:atomClass_small_s3 ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_small_s3 ; + net:trackNetComposante net:atomClass_small_s3 ; + net:trackProgress net:initialized . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:phenomena_conjunction-AND_a a net:Phenomena_Net ; + :role_op1 net:phenomena_degree_h ; + :role_op2 net:atomProperty_remain_r ; + net:coverBaseNode :leaf_and_a ; + net:coverNode :leaf_and_a ; + net:hasPhenomenaRef "and" ; + net:hasPhenomenaType :phenomena_conjunction_and ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:phenomena_degree_h2 a net:Phenomena_Net ; + :role_ARG1 net:atomClass_object_o3 ; + :role_ARG2 net:atomClass_small_s2, + net:individual_small_fromClass ; + :role_ARG3 net:atomProperty_more_m2 ; + net:coverBaseNode :leaf_have-degree-91_h2 ; + net:coverNode :leaf_have-degree-91_h2 ; + net:hasPhenomenaRef "have-degree-91" ; + net:hasPhenomenaType :phenomena_degree ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/SSC-02-01#d> a ns11:direct-02 ; + ns11:direct-02.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h2> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#root01> a ns3:AMR ; + ns3:has-id "SSC-02-01" ; + ns3:has-sentence "Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies." ; + ns3:root <http://amr.isi.edu/amr_data/SSC-02-01#a> . + +<http://amr.isi.edu/amr_data/SSC-02-01#s4> a ns2:system ; + rdfs:label "Solar System" ; + ns2:part <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns3:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:NamedEntity a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:concept_body rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:body ; + :label "body" . + +:concept_direct-02 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:direct-02 ; + :label "direct-02" . + +:concept_dwarf rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:dwarf ; + :label "dwarf" . + +:concept_large rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:large ; + :label "large" . + +:concept_more rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:more ; + :label "more" . + +:concept_most rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:most ; + :label "most" . + +:concept_orbit-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:orbit-01 ; + :label "orbit-01" . + +:concept_part rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns2:part ; + :isReifiedConcept true ; + :label "hasPart" . + +:concept_remain-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:remain-01 ; + :label "remain-01" . + +:concept_sun rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:sun ; + :label "sun" . + +:concept_system rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:system ; + :label "system" . + +:role_ARG5 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_op3 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_quant a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:value_8 a :AMR_Value ; + rdfs:label "p" . + +:value_SolarSystem a :AMR_Value ; + rdfs:label "Solar System" . + +:variable_a a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a> ; + :label "a" . + +:variable_a2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + :label "a2" . + +:variable_b a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + :label "b" . + +:variable_d a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d> ; + :label "d" . + +:variable_d2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + :label "d2" . + +:variable_h a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + :label "h" . + +:variable_h2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#h2> ; + :label "h2" . + +:variable_l a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + :label "l" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + :label "m" . + +:variable_m2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#m2> ; + :label "m2" . + +:variable_o a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + :label "o" . + +:variable_o2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o2> ; + :label "o2" . + +:variable_o3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + :label "o3" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + :label "p" . + +:variable_p2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + :label "p2" . + +:variable_p9 a ns2:part, + :AMR_Variable ; + :isReifiedVariable true ; + :label "p9" . + +:variable_r a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + :label "r" . + +:variable_s a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + :label "s" . + +:variable_s2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s2> ; + :label "s2" . + +:variable_s3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + :label "s3" . + +:variable_s4 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-02-01#s4> ; + :label "s4" ; + :name "Solar System" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_planet_p a net:Atom_Class_Net ; + :role_quant net:value_p_blankNode ; + net:coverBaseNode :leaf_planet_p ; + net:coverNode :leaf_planet_p ; + net:coverNodeCount 1 ; + net:hasClassName "planet" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_hasPart_p9 a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_system_s4, + net:compositeClass_system-hasPart-small-body_s4, + net:individual_system_SolarSystem ; + :role_ARG1 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:coverBaseNode :leaf_hasPart_p9 ; + net:coverNode :leaf_hasPart_p9 ; + net:hasPropertyName "hasPart" ; + net:hasPropertyName01 "hasPart" ; + net:hasPropertyName10 "hasPart" ; + net:hasPropertyName12 "hasPart" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_body_b, + :leaf_system_s4 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_more_m2 a net:Atom_Property_Net ; + net:coverBaseNode :leaf_more_m2 ; + net:coverNode :leaf_more_m2 ; + net:hasPropertyName "more" ; + net:hasPropertyName01 "more" ; + net:hasPropertyName10 "more" ; + net:hasPropertyName12 "more" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_most_m a net:Atom_Property_Net ; + net:coverBaseNode :leaf_most_m ; + net:coverNode :leaf_most_m ; + net:hasPropertyName "most" ; + net:hasPropertyName01 "most" ; + net:hasPropertyName10 "most" ; + net:hasPropertyName12 "most" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_large_fromClass a net:Individual_Net ; + net:coverBaseNode :leaf_large_l ; + net:coverNode :leaf_large_l ; + net:fromClassNet net:atomClass_large_l ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "large" ; + net:hasMotherClassNet net:atomClass_large_l ; + net:hasStructure "SSC-02-01" . + +net:individual_small_fromClass a net:Individual_Net ; + net:coverBaseNode :leaf_small_s2 ; + net:coverNode :leaf_small_s2 ; + net:fromClassNet net:atomClass_small_s2 ; + net:hasBaseClassName "Feature" ; + net:hasIndividualLabel "small" ; + net:hasMotherClassNet net:atomClass_small_s2 ; + net:hasStructure "SSC-02-01" . + +net:individual_system_SolarSystem a net:Individual_Net ; + :role_name net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_system_s4 ; + net:hasIndividualLabel "Solar System" ; + net:hasMotherClassName net:atomClass_system_s4 ; + net:hasMotherClassNet net:atomClass_system_s4, + net:compositeClass_system-hasPart-small-body_s4 ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:logicalSet_and_a2 a net:Logical_Set_Net ; + :role_op1 net:atomClass_object_o3 ; + :role_op2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + :role_op3 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:bindPropertyNet net:atomProperty_remain_r ; + net:bindRestriction net:restriction_remain_dwarf-planet, + net:restriction_remain_object, + net:restriction_remain_small-body ; + net:containsNet net:atomClass_body_b, + net:atomClass_object_o3, + net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2, + net:compositeClass_small-body_b ; + net:containsNet1 net:atomClass_object_o3 ; + net:containsNet2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + net:coverBaseNode :leaf_and_a2 ; + net:coverNode :leaf_and_a2 ; + net:hasLogicalConstraint "AND" ; + net:hasNaming "remain-object-and-dwarf-planet-etc" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_conjunction-AND_a2 a net:Phenomena_Net ; + :role_op1 net:atomClass_object_o3 ; + :role_op2 net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2 ; + :role_op3 net:atomClass_body_b, + net:compositeClass_small-body_b ; + net:coverBaseNode :leaf_and_a2 ; + net:coverNode :leaf_and_a2 ; + net:hasPhenomenaRef "and" ; + net:hasPhenomenaType :phenomena_conjunction_and ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:phenomena_degree_h a net:Phenomena_Net ; + :role_ARG1 net:atomClass_planet_p ; + :role_ARG2 net:atomClass_large_l, + net:individual_large_fromClass ; + :role_ARG3 net:atomProperty_most_m ; + :role_ARG5 net:atomClass_object_o, + net:compositeClass_object-orbiting-sun_o ; + net:coverBaseNode :leaf_have-degree-91_h ; + net:coverNode :leaf_have-degree-91_h ; + net:hasPhenomenaRef "have-degree-91" ; + net:hasPhenomenaType :phenomena_degree ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:restriction_hasPart_small-body a net:Restriction_Net ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3, + :leaf_system_s4 ; + net:coverTargetNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3 ; + net:hasRestrictionNetValue net:compositeClass_small-body_b ; + net:hasRestrictionOnProperty net:atomProperty_hasPart_p9 . + +net:restriction_orbiting_sun a net:Restriction_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o, + :leaf_orbit-01_o2, + :leaf_sun_s ; + net:coverTargetNode :leaf_orbit-01_o2, + :leaf_sun_s ; + net:hasRestrictionNetValue net:atomClass_sun_s ; + net:hasRestrictionOnProperty net:atomProperty_orbit_o2 . + +net:restriction_remain_dwarf-planet a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_dwarf_d2, + :leaf_planet_p2, + :leaf_remain-01_r ; + net:hasRestrictionNetValue net:compositeClass_dwarf-planet_p2 ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:restriction_remain_object a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_object_o3, + :leaf_remain-01_r ; + net:hasRestrictionNetValue net:atomClass_object_o3 ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:restriction_remain_small-body a net:Restriction_Net ; + net:coverNode :leaf_and_a2, + :leaf_body_b, + :leaf_remain-01_r, + :leaf_small_s3 ; + net:hasRestrictionNetValue net:compositeClass_small-body_b ; + net:hasRestrictionOnProperty net:atomProperty_remain_r . + +net:value_p_blankNode a net:Value_Net ; + net:hasStructure "SSC-02-01" ; + net:hasValueLabel "p" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-02-01#a> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#h> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#r> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#a2> a ns3:and ; + ns2:op1 <http://amr.isi.edu/amr_data/SSC-02-01#o3> ; + ns2:op2 <http://amr.isi.edu/amr_data/SSC-02-01#p2> ; + ns2:op3 <http://amr.isi.edu/amr_data/SSC-02-01#b> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#d2> a ns2:dwarf ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#h> a ns11:have-degree-91 ; + ns11:have-degree-91.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#p> ; + ns11:have-degree-91.ARG2 <http://amr.isi.edu/amr_data/SSC-02-01#l> ; + ns11:have-degree-91.ARG3 <http://amr.isi.edu/amr_data/SSC-02-01#m> ; + ns11:have-degree-91.ARG5 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#l> a ns2:large ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m> a ns3:most ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#m2> a ns3:more ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o2> a ns11:orbit-01 ; + ns11:orbit-01.ARG0 <http://amr.isi.edu/amr_data/SSC-02-01#o> ; + ns11:orbit-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#s> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p> a <http://amr.isi.edu/entity-types#planet> ; + ns2:quant "8" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#p2> a <http://amr.isi.edu/entity-types#planet> ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#d2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#r> a ns11:remain-01 ; + ns11:remain-01.ARG1 <http://amr.isi.edu/amr_data/SSC-02-01#a2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s> a ns2:sun ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s2> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#s3> a ns2:small ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:direct-02 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:orbit-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:remain-01 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:body a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:dwarf a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:large a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:part a ns3:Role ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:sun a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:system a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:more a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:most a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_and rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns3:and ; + :hasPhenomenaLink :phenomena_conjunction_and ; + :label "and" . + +:concept_have-degree-91 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns11:have-degree-91 ; + :hasPhenomenaLink :phenomena_degree ; + :label "have-degree-91" . + +:concept_object rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:object ; + :label "object" . + +:concept_planet rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk <http://amr.isi.edu/entity-types#planet> ; + :label "planet" . + +:concept_small rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:small ; + :label "small" . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_have-degree-91_h2 a :AMR_Leaf ; + :edge_h2_ARG1_o3 :leaf_object_o3 ; + :edge_h2_ARG2_s2 :leaf_small_s2 ; + :edge_h2_ARG3_m2 :leaf_more_m2 ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h2 . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:role_ARG0 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_mod a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_sun_s a net:Atom_Class_Net ; + net:coverBaseNode :leaf_sun_s ; + net:coverNode :leaf_sun_s ; + net:coverNodeCount 1 ; + net:hasClassName "sun" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_object-orbiting-sun_o a net:Composite_Class_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o, + :leaf_orbit-01_o2, + :leaf_sun_s ; + net:coverNodeCount 3 ; + net:hasClassName "object-orbiting-sun" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_object_o ; + net:hasRestriction01 net:restriction_orbiting_sun ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_system-hasPart-small-body_s4 a net:Composite_Class_Net ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_body_b, + :leaf_hasPart_p9, + :leaf_small_s3, + :leaf_system_s4 ; + net:coverNodeCount 4 ; + net:hasClassName "system-hasPart-small-body" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_s4 ; + net:hasRestriction01 net:restriction_hasPart_small-body ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +net:value_SolarSystem_blankNode a net:Value_Net ; + net:hasStructure "SSC-02-01" ; + net:hasValueLabel "Solar System" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-02-01#b> a ns2:body ; + ns2:mod <http://amr.isi.edu/amr_data/SSC-02-01#s3> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-02-01#o3> a ns2:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/entity-types#planet> a ns3:NamedEntity ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:have-degree-91 a ns3:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:object a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:small a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:and a ns3:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_and_a a :AMR_Leaf ; + :edge_a_op1_h :leaf_have-degree-91_h ; + :edge_a_op2_r :leaf_remain-01_r ; + :hasConcept :concept_and ; + :hasVariable :variable_a . + +:leaf_have-degree-91_h a :AMR_Leaf ; + :edge_h_ARG1_p :leaf_planet_p ; + :edge_h_ARG2_l :leaf_large_l ; + :edge_h_ARG3_m :leaf_most_m ; + :edge_h_ARG5_o :leaf_object_o ; + :hasConcept :concept_have-degree-91 ; + :hasVariable :variable_h . + +:leaf_more_m2 a :AMR_Leaf ; + :hasConcept :concept_more ; + :hasVariable :variable_m2 . + +:leaf_most_m a :AMR_Leaf ; + :hasConcept :concept_most ; + :hasVariable :variable_m . + +:leaf_planet_p a :AMR_Leaf ; + :edge_p_quant_8 :value_8 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:atomClass_large_l a net:Atom_Class_Net ; + net:coverBaseNode :leaf_large_l ; + net:coverNode :leaf_large_l ; + net:coverNodeCount 1 ; + net:hasClassName "large" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_object_o a net:Atom_Class_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o ; + net:coverNodeCount 1 ; + net:hasClassName "object" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_small_s2 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_small_s2 ; + net:coverNode :leaf_small_s2 ; + net:coverNodeCount 1 ; + net:hasClassName "small" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +ns3:Frame a ns3:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_direct-02_d a :AMR_Leaf ; + :edge_d_ARG1_o2 :leaf_orbit-01_o2 ; + :hasConcept :concept_direct-02 ; + :hasVariable :variable_d . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_system_s4 a net:Atom_Class_Net ; + :role_name net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_s4 ; + net:coverNode :leaf_system_s4 ; + net:coverNodeCount 1 ; + net:hasClassName "system" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_orbit_o2 a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_object_o, + net:compositeClass_object-orbiting-sun_o ; + :role_ARG1 net:atomClass_sun_s ; + net:coverBaseNode :leaf_orbit-01_o2 ; + net:coverNode :leaf_orbit-01_o2 ; + net:hasPropertyName "orbit" ; + net:hasPropertyName01 "orbiting" ; + net:hasPropertyName10 "orbit-by" ; + net:hasPropertyName12 "orbit-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_object_o, + :leaf_sun_s ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_hasPart_p9 a :AMR_Leaf ; + :edge_p9_ARG0_s4 :leaf_system_s4 ; + :edge_p9_ARG1_b :leaf_body_b ; + :hasConcept :concept_part ; + :hasVariable :variable_p9 ; + :isReifiedLeaf true . + +:leaf_large_l a :AMR_Leaf ; + :hasConcept :concept_large ; + :hasVariable :variable_l . + +:leaf_object_o3 a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o3 . + +:leaf_small_s2 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s2 . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomProperty_remain_r a net:Atom_Property_Net ; + :role_ARG1 net:atomClass_body_b, + net:atomClass_object_o3, + net:atomClass_planet_p2, + net:compositeClass_dwarf-planet_p2, + net:compositeClass_small-body_b, + net:logicalSet_and_a2, + net:phenomena_conjunction-AND_a2 ; + net:coverBaseNode :leaf_remain-01_r ; + net:coverNode :leaf_remain-01_r ; + net:hasPropertyName "remain" ; + net:hasPropertyName01 "remaining" ; + net:hasPropertyName10 "remain-by" ; + net:hasPropertyName12 "remain-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-02-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_and_a2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Structure a owl:Class . + +:leaf_planet_p2 a :AMR_Leaf ; + :edge_p2_mod_d2 :leaf_dwarf_d2 ; + :hasConcept :concept_planet ; + :hasVariable :variable_p2 . + +:leaf_remain-01_r a :AMR_Leaf ; + :edge_r_ARG1_a2 :leaf_and_a2 ; + :hasConcept :concept_remain-01 ; + :hasVariable :variable_r . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:atomClass_dwarf_d2 a net:Atom_Class_Net, + net:Deprecated_Net ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:coverNodeCount 1 ; + net:hasClassName "dwarf" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_small_s3 a net:Atom_Class_Net, + net:Deprecated_Net ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:coverNodeCount 1 ; + net:hasClassName "small" ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_dwarf-planet_p2 a net:Composite_Class_Net ; + :role_mod net:atomClass_dwarf_d2 ; + net:coverBaseNode :leaf_planet_p2 ; + net:coverNode :leaf_dwarf_d2, + :leaf_planet_p2 ; + net:coverNodeCount 2 ; + net:hasClassName "dwarf-planet" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_planet_p2 ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_planet_p2 ; + net:trackNetComposante net:atomClass_dwarf_d2, + net:atomClass_planet_p2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_dwarf_d2 a :AMR_Leaf ; + :hasConcept :concept_dwarf ; + :hasVariable :variable_d2 . + +:leaf_sun_s a :AMR_Leaf ; + :hasConcept :concept_sun ; + :hasVariable :variable_s . + +net:atomClass_object_o3 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_object_o3 ; + net:coverNode :leaf_object_o3 ; + net:coverNodeCount 1 ; + net:hasClassName "object" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_small-body_b a net:Composite_Class_Net ; + :role_mod net:atomClass_small_s3 ; + net:coverBaseNode :leaf_body_b ; + net:coverNode :leaf_body_b, + :leaf_small_s3 ; + net:coverNodeCount 2 ; + net:hasClassName "small-body" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_body_b ; + net:hasStructure "SSC-02-01" ; + net:trackMainNetComposante net:atomClass_body_b ; + net:trackNetComposante net:atomClass_body_b, + net:atomClass_small_s3 ; + net:trackProgress net:initialized, + net:relation_propagated . + +ns11:FrameRole a ns3:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:atomClass_body_b a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_mod net:atomClass_small_s3 ; + net:coverBaseNode :leaf_body_b ; + net:coverNode :leaf_body_b ; + net:coverNodeCount 1 ; + net:hasClassName "body" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_planet_p2 a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_mod net:atomClass_dwarf_d2 ; + net:coverBaseNode :leaf_planet_p2 ; + net:coverNode :leaf_planet_p2 ; + net:coverNodeCount 1 ; + net:hasClassName "planet" ; + net:hasClassType sys:Entity ; + net:hasStructure "SSC-02-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_and_a2 a :AMR_Leaf ; + :edge_a2_op1_o3 :leaf_object_o3 ; + :edge_a2_op2_p2 :leaf_planet_p2 ; + :edge_a2_op3_b :leaf_body_b ; + :hasConcept :concept_and ; + :hasVariable :variable_a2 . + +:leaf_object_o a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o . + +:leaf_orbit-01_o2 a :AMR_Leaf ; + :edge_o2_ARG0_o :leaf_object_o ; + :edge_o2_ARG1_s :leaf_sun_s ; + :hasConcept :concept_orbit-01 ; + :hasVariable :variable_o2 . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_small_s3 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s3 . + +:leaf_system_s4 a :AMR_Leaf ; + :edge_s4_name_SolarSystem :value_SolarSystem ; + :hasConcept :concept_system ; + :hasVariable :variable_s4 . + +:leaf_body_b a :AMR_Leaf ; + :edge_b_mod_s3 :leaf_small_s3 ; + :hasConcept :concept_body ; + :hasVariable :variable_b . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Linked_Data a owl:Class . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/output/SolarSystemDev2-20230123/SolarSystemDev2_factoid.ttl b/output/SolarSystemDev2-20230123/SolarSystemDev2_factoid.ttl new file mode 100644 index 0000000000000000000000000000000000000000..3ce44acdfb0701e80abd575ca26aefd0b1d8cf59 --- /dev/null +++ b/output/SolarSystemDev2-20230123/SolarSystemDev2_factoid.ttl @@ -0,0 +1,194 @@ +@base <http://SolarSystemDev2/factoid> . +@prefix ns1: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix ns2: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +ns2:atomClass_body_b ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#body> . + +ns2:atomClass_large_l ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#large> . + +ns2:atomClass_object_o ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> . + +ns2:atomClass_object_o3 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> . + +ns2:atomClass_planet_p ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> . + +ns2:atomClass_planet_p2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#planet> . + +ns2:atomClass_small_s2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small> . + +ns2:atomClass_sun_s ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#sun> . + +ns2:atomClass_system_s4 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> . + +ns2:atomProperty_direct_d ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> . + +ns2:atomProperty_hasPart_p9 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasPart> . + +ns2:atomProperty_more_m2 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#more> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#more> . + +ns2:atomProperty_most_m ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#most> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#most> . + +ns2:atomProperty_orbit_o2 ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#orbit> . + +ns2:atomProperty_remain_r ns2:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#remain-of> ; + ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#remain> . + +ns2:compositeClass_dwarf-planet_p2 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#dwarf-planet> . + +ns2:compositeClass_object-orbiting-sun_o ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> . + +ns2:compositeClass_small-body_b ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#small-body> . + +ns2:compositeClass_system-hasPart-small-body_s4 ns2:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> . + +ns2:compositeProperty_direct-orbit ns2:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct-orbit> . + +ns2:individual_dwarf_d2 ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#dwarf> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_large_fromClass ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#large> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_small_fromClass ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_small_s3 ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#small> ; + ns2:hasMotherClassURI ns1:Feature . + +ns2:individual_system_SolarSystem ns2:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#solar-system> . + +<https://tenet.tetras-libre.fr/extract-result#direct> a owl:ObjectProperty ; + rdfs:label "direct" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-of> a owl:ObjectProperty ; + rdfs:label "direct-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#direct-orbit> a owl:ObjectProperty ; + rdfs:label "direct-orbit" ; + rdfs:subPropertyOf <https://tenet.tetras-libre.fr/extract-result#orbit> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf> a owl:individual, + ns1:Feature ; + rdfs:label "dwarf" ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#dwarf-planet> a owl:Class ; + rdfs:label "dwarf-planet" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#planet> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> a owl:Class ; + rdfs:label "object-orbiting-sun" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#orbit-of> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ], + <https://tenet.tetras-libre.fr/extract-result#object> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain> a owl:ObjectProperty ; + rdfs:label "remain" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#remain-of> a owl:ObjectProperty ; + rdfs:label "remain-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#solar-system> a owl:individual, + <https://tenet.tetras-libre.fr/extract-result#system>, + <https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> ; + rdfs:label "Solar System" ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#body> a owl:Class ; + rdfs:label "body" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#more> a owl:ObjectProperty ; + rdfs:label "more" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#most> a owl:ObjectProperty ; + rdfs:label "most" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit> a owl:ObjectProperty ; + rdfs:label "orbit" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#orbit-of> a owl:ObjectProperty ; + rdfs:label "orbit-of" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#small-body> a owl:Class ; + rdfs:label "small-body" ; + rdfs:subClassOf <https://tenet.tetras-libre.fr/extract-result#body> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#sun> a owl:Class ; + rdfs:label "sun" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system-hasPart-small-body> a owl:Class ; + rdfs:label "system-hasPart-small-body" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ; + owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#small-body> ], + <https://tenet.tetras-libre.fr/extract-result#system> ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#hasPart> a owl:ObjectProperty ; + rdfs:label "hasPart" ; + rdfs:subPropertyOf ns1:Out_ObjectProperty ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#large> a owl:Class, + owl:individual, + ns1:Feature, + <https://tenet.tetras-libre.fr/extract-result#large> ; + rdfs:label "large" ; + rdfs:subClassOf ns1:Undetermined_Thing ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#object> a owl:Class ; + rdfs:label "object" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#planet> a owl:Class ; + rdfs:label "planet" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#system> a owl:Class ; + rdfs:label "system" ; + rdfs:subClassOf ns1:Entity ; + ns1:fromStructure "SSC-02-01" . + +<https://tenet.tetras-libre.fr/extract-result#small> a owl:Class, + owl:individual, + ns1:Feature, + <https://tenet.tetras-libre.fr/extract-result#small> ; + rdfs:label "small" ; + rdfs:subClassOf ns1:Undetermined_Thing ; + ns1:fromStructure "SSC-02-01" . + diff --git a/output/SolarSystemDev2-20230123/tenet.log b/output/SolarSystemDev2-20230123/tenet.log new file mode 100644 index 0000000000000000000000000000000000000000..4020b83a92ec005dc801a1e1ae0e1f19e50b9fdc --- /dev/null +++ b/output/SolarSystemDev2-20230123/tenet.log @@ -0,0 +1,236 @@ +- INFO - [TENET] Extraction Processing +- INFO - === Process Initialization === +- INFO - -- current dir: /home/lamenji/Workspace/Tetras/tenet/tenet +- INFO - -- Process Setting +- INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/ (amr) +- INFO - ----- Base output dir: ./../output/ +- INFO - ----- Ontology target (id): SolarSystemDev2 +- DEBUG - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet +- DEBUG - ----- Config file: config.xml +- DEBUG - + *** Config (Full Parameters) *** + -- Base Parameters + ----- config file: config.xml + ----- uuid: SolarSystemDev2 + ----- source corpus: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/ + ----- target reference: base + ----- extraction engine: tenet + ----- process level: sentence + ----- source type: amr + -- Compositional Transduction Scheme (CTS) + ----- CTS reference: amr_scheme_1 + -- Directories + ----- base directory: ./ + ----- structure directory: ./structure/ + ----- CTS directory: ./structure/cts/ + ----- target frame directory: ./../input/targetFrameStructure/ + ----- input document directory: + ----- base output dir: ./../output/ + ----- output directory: ./../output/SolarSystemDev2-20230123/ + ----- sentence output directory: ./../output/SolarSystemDev2-20230123/ + ----- SHACL binary directory: ./lib/shacl-1.3.2/bin + -- Config File Definition + ----- schema file: ./structure/amr-rdf-schema.ttl + ----- semantic net file: ./structure/semantic-net.ttl + ----- config param file: ./structure/config-parameters.ttl + ----- base ontology file: ./structure/base-ontology.ttl + ----- CTS file: ./structure/cts/amr_scheme_1.py + ----- DASH file: ./structure/dash-data-shapes.ttl + -- Useful References for Ontology + ----- base URI: https://tenet.tetras-libre.fr/working + ----- ontology suffix: -ontology.ttl + ----- ontology seed suffix: -ontology-seed.ttl + -- Source File Definition + ----- source sentence file: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/**/*.ttl + -- Target File Definition + ----- frame ontology file: ./../input/targetFrameStructure/base-ontology.ttl + ----- frame ontology seed file: ./../input/targetFrameStructure/base-ontology-seed.ttl + -- Output + ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/ + ----- output file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2.ttl + *** - *** +- INFO - -- Creating output target directory: ./../output/SolarSystemDev2-20230123/ +- DEBUG - -- Counting number of graph files (sentences) +- DEBUG - ----- Graph count: 1 +- INFO - === Extraction Processing using New TENET Engine === +- DEBUG - -- Process level: sentence +- INFO - *** sentence 1 *** +- INFO - -- Work Structure Preparation +- DEBUG - --- Graph Initialization +- DEBUG - ----- Configuration Loading +- DEBUG - -------- RDF Schema (302) +- DEBUG - -------- Semantic Net Definition (509) +- DEBUG - -------- Config Parameter Definition (543) +- DEBUG - ----- Frame Ontology Loading +- DEBUG - -------- Base Ontology produced as output (573) +- DEBUG - --- Source Data Import +- DEBUG - ----- Sentence Loading +- DEBUG - -------- /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/SSC-02-01.stog.amr.ttl (648) +- DEBUG - --- Export work graph as turtle +- DEBUG - ----- Work graph file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2.ttl +- INFO - ----- Sentence (id): SSC-02-01 +- INFO - ----- Sentence (text): Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies. +- DEBUG - --- Ending Structure Preparation +- DEBUG - ----- Total Execution Time = 0:00:00.221861 +- INFO - -- Loading Extraction Scheme (amr_scheme_1) +- DEBUG - ----- Step number: 3 +- INFO - -- Loading Extraction Rules (amr_ctr/*) +- DEBUG - ----- Total rule number: 100 +- INFO - -- Applying extraction step: preprocessing +- INFO - --- Sequence: amrld-correcting-sequence +- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (648, 0:00:00.063585) +- INFO - --- Sequence: amr-reification-sequence +- INFO - ----- reclassify-concept-1: 10/10 new triples (658, 0:00:00.255596) +- INFO - ----- reclassify-concept-2: 8/8 new triples (666, 0:00:00.212474) +- INFO - ----- reclassify-concept-3: 12/12 new triples (678, 0:00:00.108331) +- INFO - ----- reclassify-concept-4: 28/28 new triples (706, 0:00:00.141263) +- INFO - ----- reclassify-concept-5: 4/4 new triples (710, 0:00:00.111340) +- INFO - ----- reify-roles-as-concept: 5/5 new triples (715, 0:00:00.256176) +- INFO - ----- reclassify-existing-variable: 81/81 new triples (796, 0:00:00.082666) +- INFO - ----- add-new-variable-for-reified-concept: 4/4 new triples (800, 0:00:00.113368) +- INFO - ----- add-amr-leaf-for-reclassified-concept: 60/60 new triples (860, 0:00:00.109076) +- INFO - ----- add-amr-leaf-for-reified-concept: 4/4 new triples (864, 0:00:00.070734) +- INFO - ----- add-amr-edge-for-core-relation: 54/54 new triples (918, 0:00:00.249144) +- INFO - ----- add-amr-edge-for-reified-concept: 6/6 new triples (924, 0:00:00.262862) +- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (929, 0:00:00.272061) +- INFO - ----- add-value-for-quant-relation: 5/5 new triples (934, 0:00:00.212638) +- DEBUG - ----- add-amr-edge-for-polarity-relation: 0/0 new triple (934, 0:00:00.189944) +- INFO - ----- update-amr-edge-role-1: 22/22 new triples (956, 0:00:00.135501) +- INFO - ----- add-amr-root: 5/5 new triples (961, 0:00:00.063951) +- DEBUG - --- Serializing graph to SolarSystemDev2_preprocessing +- DEBUG - ----- step: preprocessing +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl +- DEBUG - ----- base: http://SolarSystemDev2/preprocessing +- INFO - ----- 313 triples extracted during preprocessing step +- INFO - -- Applying extraction step: transduction +- INFO - --- Sequence: atomic-extraction-sequence +- INFO - ----- create-atom-class-net: 66/66 new triples (1027, 0:00:00.205358) +- DEBUG - ----- (refinement) refine-cover-node-1: 11 new triples (1038) +- DEBUG - ----- (refinement) refine-cover-node-2: 11 new triples (1049) +- INFO - ----- create-individual-net-1: 7/7 new triples (1056, 0:00:00.340427) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1057) +- INFO - ----- create-atom-property-net-1: 79/79 new triples (1136, 0:00:00.350859) +- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (1142) +- INFO - ----- create-value-net: 15/15 new triples (1157, 0:00:00.129601) +- INFO - ----- create-phenomena-net-1: 46/47 new triples (1203, 0:00:00.263702) +- DEBUG - ----- (refinement) refine-cover-node-1: 4 new triples (1207) +- INFO - --- Sequence: atomic-extraction-sequence +- INFO - ----- create-atom-class-net: 3/88 new triples (1210, 0:00:00.436599) +- DEBUG - ----- create-individual-net-1: 0/9 new triple (1210, 0:00:00.198890) +- INFO - ----- create-atom-property-net-1: 1/86 new triple (1211, 0:00:00.418289) +- DEBUG - ----- create-value-net: 0/15 new triple (1211, 0:00:00.104408) +- INFO - ----- create-phenomena-net-1: 1/48 new triple (1212, 0:00:00.287131) +- INFO - --- Sequence: phenomena-application-polarity-sequence +- DEBUG - ----- polarity-phenomena-application: 0/0 new triple (1212, 0:00:00.248087) +- INFO - --- Sequence: phenomena-application-mod-sequence +- INFO - ----- mod-phenomena-application-1: 22/22 new triples (1234, 0:00:00.259196) +- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1236) +- INFO - ----- mod-phenomena-application-2: 9/13 new triples (1245, 0:00:00.150155) +- INFO - ----- mod-phenomena-application-3: 20/20 new triples (1265, 0:00:01.649060) +- INFO - --- Sequence: phenomena-application-and-sequence +- INFO - ----- and-conjunction-phenomena-application-1: 21/25 new triples (1286, 0:00:00.584410) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1287) +- INFO - ----- and-conjunction-phenomena-application-2: 1/1 new triple (1288, 0:00:00.297623) +- INFO - ----- and-conjunction-phenomena-application-3: 23/23 new triples (1311, 0:00:01.187014) +- DEBUG - ----- and-conjunction-phenomena-application-4: 0/0 new triple (1311, 0:00:00.306494) +- DEBUG - ----- and-conjunction-phenomena-application-5: 0/0 new triple (1311, 0:00:00.184335) +- DEBUG - ----- and-conjunction-phenomena-application-6: 0/0 new triple (1311, 0:00:00.428488) +- INFO - --- Sequence: phenomena-checking-sequence +- INFO - ----- expand-and-conjunction-phenomena-net: 5/5 new triples (1316, 0:00:00.025822) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triple (1316, 0:00:00.019558) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triple (1316, 0:00:00.021906) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triple (1316, 0:00:00.019253) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triple (1316, 0:00:00.018793) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triple (1316, 0:00:00.016673) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triple (1316, 0:00:00.018510) +- INFO - --- Sequence: composite-property-extraction-sequence +- INFO - ----- create-composite-class-net-from-property-1: 9/10 new triples (1325, 0:00:00.169367) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1327) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1327, 0:00:00.501036) +- INFO - --- Sequence: composite-class-extraction-sequence-1 +- INFO - ----- create-composite-class-net-from-property-1: 32/32 new triples (1359, 0:00:00.490276) +- DEBUG - ----- (refinement) refine-cover-node-1: 7 new triples (1366) +- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1368) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1368, 0:00:00.337722) +- INFO - ----- create-composite-class-net-from-property-3: 7/9 new triples (1375, 0:00:00.249603) +- INFO - --- Sequence: composite-class-extraction-sequence-2 +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triple (1375, 0:00:00.095723) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triple (1375, 0:00:00.083703) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triple (1375, 0:00:00.082717) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triple (1375, 0:00:00.145369) +- INFO - --- Sequence: restriction-adding-sequence +- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triple (1375, 0:00:00.136866) +- INFO - --- Sequence: classification-sequence +- INFO - ----- classify-net-from-core-1: 4/4 new triples (1379, 0:00:00.019407) +- INFO - ----- classify-net-from-core-2: 7/7 new triples (1386, 0:00:00.017836) +- INFO - ----- classify-net-from-core-3: 14/15 new triples (1400, 0:00:00.117178) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1402) +- DEBUG - ----- classify-net-from-part: 0/0 new triple (1402, 0:00:00.020002) +- DEBUG - ----- classify-net-from-domain: 0/0 new triple (1402, 0:00:00.016390) +- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triple (1402, 0:00:00.028859) +- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triple (1402, 0:00:00.074962) +- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triple (1402, 0:00:00.016461) +- INFO - ----- propagate-individual-1: 6/6 new triples (1408, 0:00:00.017291) +- DEBUG - ----- propagate-individual-2: 0/0 new triple (1408, 0:00:00.014734) +- DEBUG - ----- reclassify-deprecated-net: 0/0 new triple (1408, 0:00:00.010435) +- DEBUG - --- Serializing graph to SolarSystemDev2_transduction +- DEBUG - ----- step: transduction +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl +- DEBUG - ----- base: http://SolarSystemDev2/transduction +- INFO - ----- 447 triples extracted during transduction step +- INFO - -- Applying extraction step: generation +- INFO - --- Sequence: main-generation-sequence +- INFO - ----- compute-uri-for-owl-declaration-1: 11/11 new triples (1419, 0:00:00.042573) +- INFO - ----- compute-uri-for-owl-declaration-2: 2/4 new triples (1421, 0:00:00.030962) +- INFO - ----- compute-uri-for-owl-declaration-3: 5/5 new triples (1426, 0:00:00.072081) +- INFO - ----- compute-uri-for-owl-declaration-4: 4/4 new triples (1430, 0:00:00.042480) +- INFO - ----- compute-uri-for-owl-declaration-5: 7/7 new triples (1437, 0:00:00.046145) +- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1443, 0:00:00.045326) +- INFO - ----- generate-atom-class: 21/21 new triples (1464, 0:00:00.021822) +- INFO - ----- classify-atom-class-1: 5/5 new triples (1469, 0:00:00.012577) +- INFO - ----- classify-atom-class-2: 2/2 new triples (1471, 0:00:00.025550) +- INFO - ----- generate-individual: 8/12 new triples (1479, 0:00:00.020598) +- INFO - ----- classify-individual-1: 3/3 new triples (1482, 0:00:00.013684) +- INFO - ----- classify-individual-2: 4/4 new triples (1486, 0:00:00.022098) +- INFO - ----- generate-atom-property-1: 24/24 new triples (1510, 0:00:00.016533) +- INFO - ----- generate-atom-property-12: 12/24 new triples (1522, 0:00:00.019803) +- DEBUG - ----- generate-inverse-relation: 0/0 new triple (1522, 0:00:00.016910) +- INFO - ----- generate-composite-class: 16/16 new triples (1538, 0:00:00.016133) +- DEBUG - ----- add-restriction-to-class-1: 0/0 new triple (1538, 0:00:00.030055) +- DEBUG - ----- add-restriction-to-class-2: 0/0 new triple (1538, 0:00:00.026329) +- INFO - ----- add-restriction-to-class-3: 8/10 new triples (1546, 0:00:00.026526) +- DEBUG - ----- add-restriction-to-class-4: 0/0 new triple (1546, 0:00:00.030454) +- DEBUG - ----- add-restriction-to-class-5: 0/0 new triple (1546, 0:00:00.028433) +- DEBUG - ----- add-restriction-to-class-6: 0/0 new triple (1546, 0:00:00.026669) +- INFO - ----- generate-composite-property: 4/4 new triples (1550, 0:00:00.018479) +- DEBUG - --- Serializing graph to SolarSystemDev2_generation +- DEBUG - ----- step: generation +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_generation.ttl +- DEBUG - ----- base: http://SolarSystemDev2/generation +- INFO - ----- 142 triples extracted during generation step +- INFO - -- Result: file containing only the factoids +- DEBUG - --- Making factoid graph with the last step result +- DEBUG - ----- Number of factoids: 162 +- DEBUG - ----- Graph base: http://SolarSystemDev2/factoid +- DEBUG - --- Serializing graph to factoid file (./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl) +- INFO - + *** Execution Time *** +----- Function: apply (lib.tenet_extraction) +----- Total Time: 0:00:17.924268 +----- Process Time: 0:00:17.785389 + *** - *** +- INFO - === Final Ontology Generation === +- INFO - -- Making complete factoid graph by merging sentence factoid graphs +- INFO - ----- Total factoid number: 162 +- INFO - ----- Graph base: http://SolarSystemDev2/factoid +- INFO - -- Serializing graph to factoid file (./../output/SolarSystemDev2-20230123/SolarSystemDev2_factoid.ttl) +- INFO - + *** Execution Time *** +----- Function: run_tenet_extraction (tenet.main) +----- Total Time: 0:00:18.174650 +----- Process Time: 0:00:18.011748 + *** - *** +- INFO - === Done === diff --git a/run_extraction_dev.py b/run_extraction_dev.py index 7879533728a5bfe786fd0a45be2ca76cf87069c9..ca31942cf0e6a3a852a76663a669b5c2b13f4d46 100644 --- a/run_extraction_dev.py +++ b/run_extraction_dev.py @@ -7,33 +7,20 @@ # Script to run the extraction process (development) #============================================================================== -#============================================================================== -# Importing required modules -#============================================================================== - -import subprocess, os, glob -from lib import config, structure -from lib import shacl_extraction, tenet_extraction -from rdflib import Graph - - -#============================================================================== -# Parameters -#============================================================================== +import subprocess, os +import tenet.main -CONFIG_FILE = "config.xml" -base_output_dir = None # Default value +TENET_LIB_PATH = './tenet/' +BASE_OUTPUT_DIR = None # Default value +BASE_OUTPUT_DIR = './../output/' #============================================================================== # Data #============================================================================== -# Input Directories -dev_dir = "dev/" -samples_dir = "samples/" - # Input Samples +samples_dir = "samples/" srsa_ip_sample = samples_dir + "SRSA-IP/" petit_prince_sample = samples_dir + "le-petit-prince/" petit_prince_sample_0 = petit_prince_sample + "chapitre-0/" @@ -50,74 +37,45 @@ corpus_ERTMS = "dev/ERTMS/" corpus_PEV = "dev/PEV-RSE-Approach/" eolss_fish = "dev/EOLSS-FISH/" - + #============================================================================== -# Execution Parameters -# -- Source parameters: -# source_type (unl or amr), -# uuid_str (id string of the source corpus), -# source_corpus (directory with source data) +# AMR Extraction #============================================================================== -# -- Test (dev) -# source_type = 'amr' -# uuid_str = "test" -# source_corpus = "/home/lamenji/Workspace/Tetras/test/" -# base_output_dir = './output/' - -# -- Solar System (dev) -source_type = 'amr' uuid_num = '2' -uuid_str = 'SolarSystemDev' + uuid_num -source_corpus = "./input/amrDocuments/dev/" + "solar-system-" + uuid_num + '/' -base_output_dir = './output/' - -# -- Solar System Sample -# source_type = 'amr' -# uuid_str = 'SolarSystemSample' -# source_corpus = "./input/amrDocuments/samples/" + "solar-system/" -# base_output_dir = './output/' - - -#============================================================================== -# Execution Parameters -# -- Target parameters: -# target_ontology (file defining frame ontology) -# target_ontology_namespace (namespace used for target ontology) -#============================================================================== +amrld_file_path = os.getcwd() + '/../input/amrDocuments/' + "dev/solar-system-" + uuid_num + '/' +onto_prefix = 'SolarSystemDev' + uuid_num -# -- Target: system-ontology -# target_frame_group = "systemEngineering/" -# target_ontology = target_frame_group + "system" -# target_ontology_namespace = "https://tenet.tetras-libre.fr/system-ontology/" +# amrld_file_path = os.getcwd() + '/../input/amrDocuments/' + 'samples/solar-system/' +# onto_prefix = 'SolarSystemSample' -# -- Target: default-ontology -# target_ontology = "empty-default" -# target_ontology_namespace = "https://tenet.tetras-libre.fr/empty-default-ontology/" - -# -- Target: default-ontology -#target_ontology = "default" -#target_ontology_namespace = "https://tenet.tetras-libre.fr/default-ontology/" +# tenet_process = ["python3", "extract.py", +# "--source_type", 'amr', +# "--source_corpus", amrld_file_path, +# "--target_id", onto_prefix ] +# if BASE_OUTPUT_DIR is not None: tenet_process += ["--base_output_dir", BASE_OUTPUT_DIR] +# tenet_process += ["--engine", 'tenet'] +# subprocess.run(tenet_process) -# -- Target: novel-ontology -# target_frame_group = "novel/" -# target_ontology = target_frame_group + "novel" -# target_ontology_namespace = "https://tenet.tetras-libre.fr/novel-ontology/" +tenet.main.create_ontology_from_amrld_file(amrld_file_path, + onto_prefix=onto_prefix, + out_file_path=BASE_OUTPUT_DIR, + technical_dir_path=BASE_OUTPUT_DIR) -# -- old --- output_dir = "output/" - #============================================================================== -# Process +# UNL Extraction #============================================================================== -# subprocess.run(["python3", "extract.py"]) -command_def = ["python3", "extract.py"] -command_def += ["--source_type", source_type] -command_def += ["--source_corpus", source_corpus] -command_def += ["--target_id", uuid_str] -if base_output_dir is not None: command_def += ["--base_output_dir", base_output_dir] -command_def += ["--engine", 'tenet'] -subprocess.run(command_def) +# -- Target: default-ontology +# base_ontology_path = os.getcwd() + '/../input/default-ontology.ttl' +# ontology_seed_path = os.getcwd() + '/../input/default-ontology-seed.ttl' +# #target_ontology_namespace = "https://tenet.tetras-libre.fr/default-ontology/" + +# unlrdf_file_path = os.getcwd() + '/../input/unlDocuments/' + req_100 -# python3 extract.py --source_type amr --source_corpus dev/solar-system-2/ --target_id SolarSystemDev2 \ No newline at end of file +# tenet.main.create_ontology_from_unlrdf_file(unlrdf_file_path, +# base_ontology_path=base_ontology_path, +# ontology_seed_path=ontology_seed_path, +# #onto_prefix=target_ontology_namespace, +# out_file_path=BASE_OUTPUT_DIR) \ No newline at end of file diff --git a/tenet.log b/tenet.log index 28cddb92d29d42c73785e7df73adbc334bfb344f..3e742dc0c2b0409ae265ddbf1a9b530c1d8924b3 100644 --- a/tenet.log +++ b/tenet.log @@ -25,8 +25,8 @@ ----- target frame directory: ./input/targetFrameStructure/ ----- input document directory: ----- base output dir: ./output/ - ----- output directory: ./output/SolarSystemDev2-20230119/ - ----- sentence output directory: ./output/SolarSystemDev2-20230119/ + ----- output directory: ./output/SolarSystemDev2-20230123/ + ----- sentence output directory: ./output/SolarSystemDev2-20230123/ ----- SHACL binary directory: ./lib/shacl-1.3.2/bin -- Config File Definition ----- schema file: ./structure/amr-rdf-schema.ttl @@ -46,9 +46,9 @@ ----- frame ontology seed file: ./input/targetFrameStructure/base-ontology-seed.ttl -- Output ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/ - ----- output file: ./output/SolarSystemDev2-20230119/SolarSystemDev2.ttl + ----- output file: ./output/SolarSystemDev2-20230123/SolarSystemDev2.ttl *** - *** -- INFO - -- Creating output target directory: ./output/SolarSystemDev2-20230119/ +- INFO - -- Creating output target directory: ./output/SolarSystemDev2-20230123/ - DEBUG - -- Counting number of graph files (sentences) - DEBUG - ----- Graph count: 1 - INFO - === Extraction Processing using New TENET Engine === @@ -57,179 +57,10 @@ - INFO - -- Work Structure Preparation - DEBUG - --- Graph Initialization - DEBUG - ----- Configuration Loading -- DEBUG - -------- RDF Schema (302) -- DEBUG - -------- Semantic Net Definition (509) -- DEBUG - -------- Config Parameter Definition (543) -- DEBUG - ----- Frame Ontology Loading -- DEBUG - -------- Base Ontology produced as output (573) -- DEBUG - --- Source Data Import -- DEBUG - ----- Sentence Loading -- DEBUG - -------- ./input/amrDocuments/dev/solar-system-2/SSC-02-01.stog.amr.ttl (648) -- DEBUG - --- Export work graph as turtle -- DEBUG - ----- Work graph file: ./output/SolarSystemDev2-20230119/SolarSystemDev2-1/SolarSystemDev2.ttl -- INFO - ----- Sentence (id): SSC-02-01 -- INFO - ----- Sentence (text): Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies. -- DEBUG - --- Ending Structure Preparation -- DEBUG - ----- Total Execution Time = 0:00:00.263234 +- ERROR - !!! An exception occurred !!! - INFO - -- Loading Extraction Scheme (amr_scheme_1) -- DEBUG - ----- Step number: 3 -- INFO - -- Loading Extraction Rules (amr_ctr/*) -- DEBUG - ----- Total rule number: 100 -- INFO - -- Applying extraction step: preprocessing -- INFO - --- Sequence: amrld-correcting-sequence -- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (648, 0:00:00.031592) -- INFO - --- Sequence: amr-reification-sequence -- INFO - ----- reclassify-concept-1: 10/10 new triples (658, 0:00:00.131478) -- INFO - ----- reclassify-concept-2: 8/8 new triples (666, 0:00:00.063462) -- INFO - ----- reclassify-concept-3: 12/12 new triples (678, 0:00:00.044003) -- INFO - ----- reclassify-concept-4: 28/28 new triples (706, 0:00:00.063725) -- INFO - ----- reclassify-concept-5: 4/4 new triples (710, 0:00:00.040502) -- INFO - ----- reify-roles-as-concept: 5/5 new triples (715, 0:00:00.051297) -- INFO - ----- reclassify-existing-variable: 81/81 new triples (796, 0:00:00.035602) -- INFO - ----- add-new-variable-for-reified-concept: 4/4 new triples (800, 0:00:00.052272) -- INFO - ----- add-amr-leaf-for-reclassified-concept: 60/60 new triples (860, 0:00:00.064158) -- INFO - ----- add-amr-leaf-for-reified-concept: 4/4 new triples (864, 0:00:00.033549) -- INFO - ----- add-amr-edge-for-core-relation: 54/54 new triples (918, 0:00:00.173490) -- INFO - ----- add-amr-edge-for-reified-concept: 6/6 new triples (924, 0:00:00.153332) -- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (929, 0:00:00.074229) -- INFO - ----- add-value-for-quant-relation: 5/5 new triples (934, 0:00:00.071513) -- DEBUG - ----- add-amr-edge-for-polarity-relation: 0/0 new triple (934, 0:00:00.080483) -- INFO - ----- update-amr-edge-role-1: 22/22 new triples (956, 0:00:00.126582) -- INFO - ----- add-amr-root: 5/5 new triples (961, 0:00:00.024912) -- DEBUG - --- Serializing graph to SolarSystemDev2_preprocessing -- DEBUG - ----- step: preprocessing -- DEBUG - ----- id: SolarSystemDev2 -- DEBUG - ----- work_file: ./output/SolarSystemDev2-20230119/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl -- DEBUG - ----- base: http://SolarSystemDev2/preprocessing -- INFO - ----- 313 triples extracted during preprocessing step -- INFO - -- Applying extraction step: transduction -- INFO - --- Sequence: atomic-extraction-sequence -- INFO - ----- create-atom-class-net: 66/66 new triples (1027, 0:00:00.086564) -- DEBUG - ----- (refinement) refine-cover-node-1: 11 new triples (1038) -- DEBUG - ----- (refinement) refine-cover-node-2: 11 new triples (1049) -- INFO - ----- create-individual-net-1: 7/7 new triples (1056, 0:00:00.098694) -- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1057) -- INFO - ----- create-atom-property-net-1: 79/79 new triples (1136, 0:00:00.150509) -- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (1142) -- INFO - ----- create-value-net: 15/15 new triples (1157, 0:00:00.057008) -- INFO - ----- create-phenomena-net-1: 46/47 new triples (1203, 0:00:00.132288) -- DEBUG - ----- (refinement) refine-cover-node-1: 4 new triples (1207) -- INFO - --- Sequence: atomic-extraction-sequence -- INFO - ----- create-atom-class-net: 3/88 new triples (1210, 0:00:00.130829) -- DEBUG - ----- create-individual-net-1: 0/9 new triple (1210, 0:00:00.070973) -- INFO - ----- create-atom-property-net-1: 1/86 new triple (1211, 0:00:00.172992) -- DEBUG - ----- create-value-net: 0/15 new triple (1211, 0:00:00.058174) -- INFO - ----- create-phenomena-net-1: 1/48 new triple (1212, 0:00:00.142137) -- INFO - --- Sequence: phenomena-application-polarity-sequence -- DEBUG - ----- polarity-phenomena-application: 0/0 new triple (1212, 0:00:00.114164) -- INFO - --- Sequence: phenomena-application-mod-sequence -- INFO - ----- mod-phenomena-application-1: 22/22 new triples (1234, 0:00:00.108666) -- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1236) -- INFO - ----- mod-phenomena-application-2: 9/13 new triples (1245, 0:00:00.085367) -- INFO - ----- mod-phenomena-application-3: 20/20 new triples (1265, 0:00:01.272451) -- INFO - --- Sequence: phenomena-application-and-sequence -- INFO - ----- and-conjunction-phenomena-application-1: 21/25 new triples (1286, 0:00:00.384845) -- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1287) -- INFO - ----- and-conjunction-phenomena-application-2: 1/1 new triple (1288, 0:00:00.152316) -- INFO - ----- and-conjunction-phenomena-application-3: 23/23 new triples (1311, 0:00:00.703098) -- DEBUG - ----- and-conjunction-phenomena-application-4: 0/0 new triple (1311, 0:00:00.124433) -- DEBUG - ----- and-conjunction-phenomena-application-5: 0/0 new triple (1311, 0:00:00.116282) -- DEBUG - ----- and-conjunction-phenomena-application-6: 0/0 new triple (1311, 0:00:00.145716) -- INFO - --- Sequence: phenomena-checking-sequence -- INFO - ----- expand-and-conjunction-phenomena-net: 5/5 new triples (1316, 0:00:00.014671) -- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triple (1316, 0:00:00.010466) -- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triple (1316, 0:00:00.013993) -- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triple (1316, 0:00:00.010497) -- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triple (1316, 0:00:00.013737) -- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triple (1316, 0:00:00.009543) -- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triple (1316, 0:00:00.009753) -- INFO - --- Sequence: composite-property-extraction-sequence -- INFO - ----- create-composite-class-net-from-property-1: 9/10 new triples (1325, 0:00:00.136737) -- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1327) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1327, 0:00:00.370087) -- INFO - --- Sequence: composite-class-extraction-sequence-1 -- INFO - ----- create-composite-class-net-from-property-1: 32/32 new triples (1359, 0:00:00.337127) -- DEBUG - ----- (refinement) refine-cover-node-1: 7 new triples (1366) -- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1368) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1368, 0:00:00.152610) -- INFO - ----- create-composite-class-net-from-property-3: 7/9 new triples (1375, 0:00:00.217826) -- INFO - --- Sequence: composite-class-extraction-sequence-2 -- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triple (1375, 0:00:00.046393) -- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triple (1375, 0:00:00.050674) -- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triple (1375, 0:00:00.059600) -- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triple (1375, 0:00:00.079842) -- INFO - --- Sequence: restriction-adding-sequence -- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triple (1375, 0:00:00.056458) -- INFO - --- Sequence: classification-sequence -- INFO - ----- classify-net-from-core-1: 4/4 new triples (1379, 0:00:00.008170) -- INFO - ----- classify-net-from-core-2: 7/7 new triples (1386, 0:00:00.008573) -- INFO - ----- classify-net-from-core-3: 14/15 new triples (1400, 0:00:00.059498) -- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1402) -- DEBUG - ----- classify-net-from-part: 0/0 new triple (1402, 0:00:00.009435) -- DEBUG - ----- classify-net-from-domain: 0/0 new triple (1402, 0:00:00.015072) -- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triple (1402, 0:00:00.013746) -- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triple (1402, 0:00:00.041446) -- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triple (1402, 0:00:00.009943) -- INFO - ----- propagate-individual-1: 6/6 new triples (1408, 0:00:00.011419) -- DEBUG - ----- propagate-individual-2: 0/0 new triple (1408, 0:00:00.008898) -- DEBUG - ----- reclassify-deprecated-net: 0/0 new triple (1408, 0:00:00.010787) -- DEBUG - --- Serializing graph to SolarSystemDev2_transduction -- DEBUG - ----- step: transduction -- DEBUG - ----- id: SolarSystemDev2 -- DEBUG - ----- work_file: ./output/SolarSystemDev2-20230119/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl -- DEBUG - ----- base: http://SolarSystemDev2/transduction -- INFO - ----- 447 triples extracted during transduction step -- INFO - -- Applying extraction step: generation -- INFO - --- Sequence: main-generation-sequence -- INFO - ----- compute-uri-for-owl-declaration-1: 11/11 new triples (1419, 0:00:00.026928) -- INFO - ----- compute-uri-for-owl-declaration-2: 2/4 new triples (1421, 0:00:00.018520) -- INFO - ----- compute-uri-for-owl-declaration-3: 5/5 new triples (1426, 0:00:00.035008) -- INFO - ----- compute-uri-for-owl-declaration-4: 4/4 new triples (1430, 0:00:00.025935) -- INFO - ----- compute-uri-for-owl-declaration-5: 7/7 new triples (1437, 0:00:00.021920) -- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1443, 0:00:00.032737) -- INFO - ----- generate-atom-class: 21/21 new triples (1464, 0:00:00.013426) -- INFO - ----- classify-atom-class-1: 5/5 new triples (1469, 0:00:00.011252) -- INFO - ----- classify-atom-class-2: 2/2 new triples (1471, 0:00:00.014036) -- INFO - ----- generate-individual: 8/12 new triples (1479, 0:00:00.035069) -- INFO - ----- classify-individual-1: 3/3 new triples (1482, 0:00:00.007145) -- INFO - ----- classify-individual-2: 4/4 new triples (1486, 0:00:00.009724) -- INFO - ----- generate-atom-property-1: 24/24 new triples (1510, 0:00:00.015261) -- INFO - ----- generate-atom-property-12: 12/24 new triples (1522, 0:00:00.014077) -- DEBUG - ----- generate-inverse-relation: 0/0 new triple (1522, 0:00:00.007736) -- INFO - ----- generate-composite-class: 16/16 new triples (1538, 0:00:00.010918) -- DEBUG - ----- add-restriction-to-class-1: 0/0 new triple (1538, 0:00:00.022184) -- DEBUG - ----- add-restriction-to-class-2: 0/0 new triple (1538, 0:00:00.016821) -- INFO - ----- add-restriction-to-class-3: 8/10 new triples (1546, 0:00:00.020927) -- DEBUG - ----- add-restriction-to-class-4: 0/0 new triple (1546, 0:00:00.017548) -- DEBUG - ----- add-restriction-to-class-5: 0/0 new triple (1546, 0:00:00.016098) -- DEBUG - ----- add-restriction-to-class-6: 0/0 new triple (1546, 0:00:00.014409) -- INFO - ----- generate-composite-property: 4/4 new triples (1550, 0:00:00.009684) -- DEBUG - --- Serializing graph to SolarSystemDev2_generation -- DEBUG - ----- step: generation -- DEBUG - ----- id: SolarSystemDev2 -- DEBUG - ----- work_file: ./output/SolarSystemDev2-20230119/SolarSystemDev2-1/SolarSystemDev2_generation.ttl -- DEBUG - ----- base: http://SolarSystemDev2/generation -- INFO - ----- 142 triples extracted during generation step -- INFO - -- Result: file containing only the factoids -- DEBUG - --- Making factoid graph with the last step result -- DEBUG - ----- Number of factoids: 162 -- DEBUG - ----- Graph base: http://SolarSystemDev2/factoid -- DEBUG - --- Serializing graph to factoid file (./output/SolarSystemDev2-20230119/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl) -- INFO - - *** Execution Time *** ------ Function: apply (lib.tenet_extraction) ------ Total Time: 0:00:09.771042 ------ Process Time: 0:00:09.734069 - *** - *** -- INFO - === Final Ontology Generation === -- INFO - -- Making complete factoid graph by merging sentence factoid graphs -- INFO - ----- Total factoid number: 162 -- INFO - ----- Graph base: http://SolarSystemDev2/factoid -- INFO - -- Serializing graph to factoid file (./output/SolarSystemDev2-20230119/SolarSystemDev2_factoid.ttl) -- INFO - - *** Execution Time *** ------ Function: run_tenet_extraction (__main__) ------ Total Time: 0:00:10.049064 ------ Process Time: 0:00:10.003032 - *** - *** -- INFO - === Done === +- ERROR - *** Error while loading scheme (load_cts) *** +- DEBUG - + cts_file unknown: ./structure/cts/amr_scheme_1.py +- ERROR - *** Error while processing extraction (apply) *** +- DEBUG - ----- config.cts_ref = amr_scheme_1 diff --git a/tenet/__init__.py b/tenet/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..91716185e2c523938ea370bf5a4f30185b1d62a5 --- /dev/null +++ b/tenet/__init__.py @@ -0,0 +1 @@ +import main diff --git a/config.xml b/tenet/config.xml similarity index 81% rename from config.xml rename to tenet/config.xml index 437e8abacabe18758d6111ed3bc0f722b03a540a..969871a3c3c0288957210619246b3d19fc3cef03 100644 --- a/config.xml +++ b/tenet/config.xml @@ -16,12 +16,12 @@ base_dir = "./" structure = "structure/" cts = "structure/cts/" - target_frame = "input/targetFrameStructure/" - amr_input_documents = "input/amrDocuments/" - unl_input_documents = "input/unlDocuments/" - output = "output/" + target_frame = "../input/targetFrameStructure/" + amr_input_documents = "../input/amrDocuments/" + unl_input_documents = "../input/unlDocuments/" + output = "../output/" shacl_bin = "lib/shacl-1.3.2/bin" - shacl_cts = "structure/shaclCTS/" + shacl_cts = "structure/cts/" /> <file diff --git a/tenet/extract.py b/tenet/extract.py new file mode 100644 index 0000000000000000000000000000000000000000..e92e9e5aaef4c179ad86296a76920242fe6f1414 --- /dev/null +++ b/tenet/extract.py @@ -0,0 +1,68 @@ +#!/usr/bin/python3.10 +# -*-coding:Utf-8 -* + +#============================================================================== +# TENET: extract +#------------------------------------------------------------------------------ +# Command to run the main extraction process +#============================================================================== + +import argparse, sys, os, glob +import shutil +from rdflib import Graph +import logging.config + +# Set main file directory as reference +LIB_PATH = os.path.dirname(os.path.abspath(__file__)) + '/' +print('Running in ' + LIB_PATH) +os.chdir(LIB_PATH) +sys.path.insert(1, LIB_PATH) + +import main + + +#============================================================================== +# Default values +#============================================================================== + +DEFAULT_SOURCE_TYPE = 'amr' +DEFAULT_SOURCE_CORPUS = "samples/s1/" +DEFAULT_TARGET_ID = 'DefaultTargetId' +DEFAULT_BASE_OUTPUT_DIR = None +DEFAULT_ENGINE = 'tenet' + + +#============================================================================== +# Main Process +#============================================================================== + +def control_arguments(): + arg_parser = argparse.ArgumentParser( + description=("TENET - Tool for Extraction using Net Extension ", + "by (semantic) Transduction")) + arg_parser.add_argument("--source_type", nargs='?', + default=DEFAULT_SOURCE_TYPE, + help="source_type: amr or unl") + arg_parser.add_argument("--source_corpus", + default=DEFAULT_SOURCE_CORPUS, + help="source_corpus: source corpus directory with slash") + arg_parser.add_argument("--target_id", + default=DEFAULT_TARGET_ID, + help="target_id: id for the target ontology") + arg_parser.add_argument("--base_output_dir", + default=DEFAULT_BASE_OUTPUT_DIR, + help="base_output_dir base output directory with slash") + arg_parser.add_argument("--engine", + default=DEFAULT_ENGINE, + help="engine: shacl, tenet or new") + args = arg_parser.parse_args() + return args + + +if __name__ == '__main__': + args = control_arguments() + main.create_ontology_from_amrld_file(args.source_corpus, + base_ontology_path=None, + onto_prefix=args.target_id, + out_file_path=args.base_output_dir, + technical_dir_path=args.base_output_dir) \ No newline at end of file diff --git a/lib/__init__.py b/tenet/lib/__init__.py similarity index 100% rename from lib/__init__.py rename to tenet/lib/__init__.py diff --git a/lib/config.py b/tenet/lib/config.py similarity index 100% rename from lib/config.py rename to tenet/lib/config.py diff --git a/lib/cts_generation.py b/tenet/lib/cts_generation.py similarity index 100% rename from lib/cts_generation.py rename to tenet/lib/cts_generation.py diff --git a/lib/shacl-1.3.2/LICENSE b/tenet/lib/shacl-1.3.2/LICENSE similarity index 100% rename from lib/shacl-1.3.2/LICENSE rename to tenet/lib/shacl-1.3.2/LICENSE diff --git a/lib/shacl-1.3.2/README.md b/tenet/lib/shacl-1.3.2/README.md similarity index 100% rename from lib/shacl-1.3.2/README.md rename to tenet/lib/shacl-1.3.2/README.md diff --git a/lib/shacl-1.3.2/bin/shaclinfer.bat b/tenet/lib/shacl-1.3.2/bin/shaclinfer.bat similarity index 100% rename from lib/shacl-1.3.2/bin/shaclinfer.bat rename to tenet/lib/shacl-1.3.2/bin/shaclinfer.bat diff --git a/lib/shacl-1.3.2/bin/shaclinfer.sh b/tenet/lib/shacl-1.3.2/bin/shaclinfer.sh similarity index 100% rename from lib/shacl-1.3.2/bin/shaclinfer.sh rename to tenet/lib/shacl-1.3.2/bin/shaclinfer.sh diff --git a/lib/shacl-1.3.2/bin/shaclvalidate.bat b/tenet/lib/shacl-1.3.2/bin/shaclvalidate.bat similarity index 100% rename from lib/shacl-1.3.2/bin/shaclvalidate.bat rename to tenet/lib/shacl-1.3.2/bin/shaclvalidate.bat diff --git a/lib/shacl-1.3.2/bin/shaclvalidate.sh b/tenet/lib/shacl-1.3.2/bin/shaclvalidate.sh similarity index 100% rename from lib/shacl-1.3.2/bin/shaclvalidate.sh rename to tenet/lib/shacl-1.3.2/bin/shaclvalidate.sh diff --git a/lib/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar b/tenet/lib/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar similarity index 100% rename from lib/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar rename to tenet/lib/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar diff --git a/lib/shacl-1.3.2/lib/collection-0.7.jar b/tenet/lib/shacl-1.3.2/lib/collection-0.7.jar similarity index 100% rename from lib/shacl-1.3.2/lib/collection-0.7.jar rename to tenet/lib/shacl-1.3.2/lib/collection-0.7.jar diff --git a/lib/shacl-1.3.2/lib/commons-cli-1.4.jar b/tenet/lib/shacl-1.3.2/lib/commons-cli-1.4.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-cli-1.4.jar rename to tenet/lib/shacl-1.3.2/lib/commons-cli-1.4.jar diff --git a/lib/shacl-1.3.2/lib/commons-codec-1.13.jar b/tenet/lib/shacl-1.3.2/lib/commons-codec-1.13.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-codec-1.13.jar rename to tenet/lib/shacl-1.3.2/lib/commons-codec-1.13.jar diff --git a/lib/shacl-1.3.2/lib/commons-compress-1.19.jar b/tenet/lib/shacl-1.3.2/lib/commons-compress-1.19.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-compress-1.19.jar rename to tenet/lib/shacl-1.3.2/lib/commons-compress-1.19.jar diff --git a/lib/shacl-1.3.2/lib/commons-csv-1.7.jar b/tenet/lib/shacl-1.3.2/lib/commons-csv-1.7.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-csv-1.7.jar rename to tenet/lib/shacl-1.3.2/lib/commons-csv-1.7.jar diff --git a/lib/shacl-1.3.2/lib/commons-io-2.6.jar b/tenet/lib/shacl-1.3.2/lib/commons-io-2.6.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-io-2.6.jar rename to tenet/lib/shacl-1.3.2/lib/commons-io-2.6.jar diff --git a/lib/shacl-1.3.2/lib/commons-lang3-3.9.jar b/tenet/lib/shacl-1.3.2/lib/commons-lang3-3.9.jar similarity index 100% rename from lib/shacl-1.3.2/lib/commons-lang3-3.9.jar rename to tenet/lib/shacl-1.3.2/lib/commons-lang3-3.9.jar diff --git a/lib/shacl-1.3.2/lib/httpclient-4.5.10.jar b/tenet/lib/shacl-1.3.2/lib/httpclient-4.5.10.jar similarity index 100% rename from lib/shacl-1.3.2/lib/httpclient-4.5.10.jar rename to tenet/lib/shacl-1.3.2/lib/httpclient-4.5.10.jar diff --git a/lib/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar b/tenet/lib/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar similarity index 100% rename from lib/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar rename to tenet/lib/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar diff --git a/lib/shacl-1.3.2/lib/httpcore-4.4.12.jar b/tenet/lib/shacl-1.3.2/lib/httpcore-4.4.12.jar similarity index 100% rename from lib/shacl-1.3.2/lib/httpcore-4.4.12.jar rename to tenet/lib/shacl-1.3.2/lib/httpcore-4.4.12.jar diff --git a/lib/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar b/tenet/lib/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar rename to tenet/lib/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar diff --git a/lib/shacl-1.3.2/lib/jackson-core-2.9.10.jar b/tenet/lib/shacl-1.3.2/lib/jackson-core-2.9.10.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jackson-core-2.9.10.jar rename to tenet/lib/shacl-1.3.2/lib/jackson-core-2.9.10.jar diff --git a/lib/shacl-1.3.2/lib/jackson-databind-2.9.10.jar b/tenet/lib/shacl-1.3.2/lib/jackson-databind-2.9.10.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jackson-databind-2.9.10.jar rename to tenet/lib/shacl-1.3.2/lib/jackson-databind-2.9.10.jar diff --git a/lib/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar b/tenet/lib/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar rename to tenet/lib/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar diff --git a/lib/shacl-1.3.2/lib/jena-arq-3.13.1.jar b/tenet/lib/shacl-1.3.2/lib/jena-arq-3.13.1.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jena-arq-3.13.1.jar rename to tenet/lib/shacl-1.3.2/lib/jena-arq-3.13.1.jar diff --git a/lib/shacl-1.3.2/lib/jena-base-3.13.1.jar b/tenet/lib/shacl-1.3.2/lib/jena-base-3.13.1.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jena-base-3.13.1.jar rename to tenet/lib/shacl-1.3.2/lib/jena-base-3.13.1.jar diff --git a/lib/shacl-1.3.2/lib/jena-core-3.13.1.jar b/tenet/lib/shacl-1.3.2/lib/jena-core-3.13.1.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jena-core-3.13.1.jar rename to tenet/lib/shacl-1.3.2/lib/jena-core-3.13.1.jar diff --git a/lib/shacl-1.3.2/lib/jena-iri-3.13.1.jar b/tenet/lib/shacl-1.3.2/lib/jena-iri-3.13.1.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jena-iri-3.13.1.jar rename to tenet/lib/shacl-1.3.2/lib/jena-iri-3.13.1.jar diff --git a/lib/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar b/tenet/lib/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar rename to tenet/lib/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar diff --git a/lib/shacl-1.3.2/lib/jsonld-java-0.12.5.jar b/tenet/lib/shacl-1.3.2/lib/jsonld-java-0.12.5.jar similarity index 100% rename from lib/shacl-1.3.2/lib/jsonld-java-0.12.5.jar rename to tenet/lib/shacl-1.3.2/lib/jsonld-java-0.12.5.jar diff --git a/lib/shacl-1.3.2/lib/libthrift-0.12.0.jar b/tenet/lib/shacl-1.3.2/lib/libthrift-0.12.0.jar similarity index 100% rename from lib/shacl-1.3.2/lib/libthrift-0.12.0.jar rename to tenet/lib/shacl-1.3.2/lib/libthrift-0.12.0.jar diff --git a/lib/shacl-1.3.2/lib/shacl-1.3.2.jar b/tenet/lib/shacl-1.3.2/lib/shacl-1.3.2.jar similarity index 100% rename from lib/shacl-1.3.2/lib/shacl-1.3.2.jar rename to tenet/lib/shacl-1.3.2/lib/shacl-1.3.2.jar diff --git a/lib/shacl-1.3.2/lib/slf4j-api-1.7.26.jar b/tenet/lib/shacl-1.3.2/lib/slf4j-api-1.7.26.jar similarity index 100% rename from lib/shacl-1.3.2/lib/slf4j-api-1.7.26.jar rename to tenet/lib/shacl-1.3.2/lib/slf4j-api-1.7.26.jar diff --git a/lib/shacl-1.3.2/log4j.properties b/tenet/lib/shacl-1.3.2/log4j.properties similarity index 100% rename from lib/shacl-1.3.2/log4j.properties rename to tenet/lib/shacl-1.3.2/log4j.properties diff --git a/lib/shacl-1.3.2/test-shacl-construct.shapes.ttl b/tenet/lib/shacl-1.3.2/test-shacl-construct.shapes.ttl similarity index 100% rename from lib/shacl-1.3.2/test-shacl-construct.shapes.ttl rename to tenet/lib/shacl-1.3.2/test-shacl-construct.shapes.ttl diff --git a/lib/shacl_extraction.py b/tenet/lib/shacl_extraction.py similarity index 100% rename from lib/shacl_extraction.py rename to tenet/lib/shacl_extraction.py diff --git a/lib/structure.py b/tenet/lib/structure.py similarity index 96% rename from lib/structure.py rename to tenet/lib/structure.py index 52eecb047a71efcbe363454c2223270cf95a28a5..2c2d96424c4ae6dc85c7857c1e9624b0a39d4b1c 100644 --- a/lib/structure.py +++ b/tenet/lib/structure.py @@ -49,10 +49,10 @@ def load_shacl_specific_config(config, work_graph): work_graph.parse(config.dash_file) logger.debug("-------- Data Shapes Dash ({0})".format(len(work_graph))) - logger.debug("-------- SHACL CTS Loading:") + logger.debug("-------- SHACL CTS Loading") for file_ref in glob.glob(config.cts_file, recursive = True): work_graph.parse(file_ref) - # logger.debug("----- " + file_ref + " (" + str(len(work_graph)) + ")") + logger.debug("----------- " + file_ref + " (" + str(len(work_graph)) + ")") logger.debug("-------- All Schemes ({0})".format(len(work_graph))) @@ -199,8 +199,9 @@ def prepare_work_graph(config, sentence_file): # -- Information logging about structure graphId, graphSentence = obtain_graph_reference(work_graph) - logger.info(f"----- Sentence (id): {graphId}") - logger.info(f"----- Sentence (text): {graphSentence}") + if config.engine not in ["shacl", "all"]: + logger.info(f"----- Sentence (id): {graphId}") + logger.info(f"----- Sentence (text): {graphSentence}") # -- Ending exec_end = time.perf_counter() diff --git a/lib/tenet_extraction.py b/tenet/lib/tenet_extraction.py similarity index 99% rename from lib/tenet_extraction.py rename to tenet/lib/tenet_extraction.py index b7e71e2724dbdf892b42c9dda06b8e81fcd98c7c..367d53308fbde7da57bdea51252743d7c55fb5cd 100644 --- a/lib/tenet_extraction.py +++ b/tenet/lib/tenet_extraction.py @@ -18,12 +18,14 @@ import sys import logging import glob from pathlib import Path + from importlib.machinery import SourceFileLoader import importlib.util import importlib -from .timer import timed -from .transduction.rule import Rule -from .transduction.sequence import Sequence + +from utility.timer import timed +from lib.transduction.rule import Rule +from lib.transduction.sequence import Sequence #============================================================================== diff --git a/lib/transduction/__init__.py b/tenet/lib/transduction/__init__.py similarity index 100% rename from lib/transduction/__init__.py rename to tenet/lib/transduction/__init__.py diff --git a/lib/transduction/rule.py b/tenet/lib/transduction/rule.py similarity index 99% rename from lib/transduction/rule.py rename to tenet/lib/transduction/rule.py index 0f78c3b39c058f7f55a34647fb5a516ae2f5be77..2187e25efc5b1631e3d857e75e49a3f5f256c345 100644 --- a/lib/transduction/rule.py +++ b/tenet/lib/transduction/rule.py @@ -11,7 +11,7 @@ # Importing required modules #============================================================================== -from .timer import timer_return +from utility.timer import timer_return #============================================================================== diff --git a/lib/transduction/sequence.py b/tenet/lib/transduction/sequence.py similarity index 100% rename from lib/transduction/sequence.py rename to tenet/lib/transduction/sequence.py diff --git a/logging.conf b/tenet/logging.conf similarity index 100% rename from logging.conf rename to tenet/logging.conf diff --git a/tenet/main.py b/tenet/main.py new file mode 100644 index 0000000000000000000000000000000000000000..0ef624d780f00fb68a9639c8bcf4b323665762c2 --- /dev/null +++ b/tenet/main.py @@ -0,0 +1,267 @@ +#!/usr/bin/python3.10 +# -*-coding:Utf-8 -* + +#============================================================================== +# TENET: main +#------------------------------------------------------------------------------ +# Module providing the main methods of the TENET library. +#============================================================================== + +import sys, os, glob +import shutil +from rdflib import Graph +import logging.config + +# Set main file directory as reference +LIB_PATH = os.path.dirname(os.path.abspath(__file__)) + '/' +print('Running in ' + LIB_PATH) +os.chdir(LIB_PATH) +sys.path.insert(1, LIB_PATH) + +from lib import config, structure +from lib import shacl_extraction, tenet_extraction +from utility.timer import timed + + +#============================================================================== +# Parameters +#============================================================================== + +# Logging +logging.config.fileConfig('logging.conf', disable_existing_loggers=False) +logger = logging.getLogger('root') + +# Configuration +CONFIG_FILE = "config.xml" + +# Default values +DEFAULT_SOURCE_TYPE = 'amr' +DEFAULT_SOURCE_CORPUS = "samples/s1/" +DEFAULT_TARGET_ID = 'DefaultTargetId' +DEFAULT_BASE_OUTPUT_DIR = None +DEFAULT_ENGINE = 'tenet' + + +#============================================================================== +# Steps +#============================================================================== + +def set_config(args): + + logger.info("-- Process Setting ") + logger.info("----- Corpus source: {0} ({1})".format(args['source_corpus'], + args['source_type'])) + logger.info("----- Base output dir: {0}".format(args['base_output_dir'])) + logger.info("----- Ontology target (id): {0}".format(args['target_id'])) + logger.debug("----- Current path: {0}".format(os.getcwd())) + logger.debug("----- Config file: {0}".format(CONFIG_FILE)) + + process_config = config.Config(CONFIG_FILE, + args['target_id'], + args['source_corpus'], + #target_ontology, + base_output_dir = args['base_output_dir'] + ) + process_config.source_type = args['source_type'] + # config.output_ontology_namespace = target_ontology_namespace + + process_config.engine = args['engine'] + + logger.debug(process_config.get_full_config()) + + return process_config + + +def init_process(config): + + logger.info("-- Creating output target directory: " + config.output_dir) + os.makedirs(config.output_dir, exist_ok=True) + + logger.debug("-- Counting number of graph files (sentences) ") + sentence_count = 0 + for file_ref in glob.glob(config.source_sentence_file, recursive = True): + sentence_count += 1 + logger.debug("----- Graph count: {0}".format(sentence_count)) + + +# def run_shacl_extraction(config): +# logger.debug("-- Process level: document") +# work_graph = structure.prepare_document_work(config) +# shacl_extraction.apply(config, work_graph) + +@timed +def run_tenet_extraction(config): + + logger.debug("-- Process level: sentence") + + sentence_dir = config.source_sentence_file + sentence_count = 0 + result_triple_list = [] + for sentence_file in glob.glob(sentence_dir, recursive = True): + sentence_count += 1 + config.sentence_output_dir = '-' + str(sentence_count) + logger.info(" *** sentence {0} *** ".format(sentence_count)) + os.makedirs(config.sentence_output_dir, exist_ok=True) + work_graph = structure.prepare_sentence_work(config, sentence_file) + # New extraction engine running + _, new_triple_list = tenet_extraction.apply(config, work_graph) + result_triple_list.extend(new_triple_list) + + logger.info(' === Final Ontology Generation === ') + config.sentence_output_dir = '' + logger.info("-- Making complete factoid graph by merging sentence factoid graphs") + factoid_graph = Graph() + for new_triple in result_triple_list: + factoid_graph.add(new_triple) + logger.info("----- Total factoid number: " + str(len(new_triple_list))) + uuid_str = config.uuid_str + base_ref = "http://" + uuid_str + '/' + 'factoid' + logger.info("----- Graph base: {0}".format(base_ref)) + factoid_file = config.output_file.replace('.ttl', '_factoid.ttl') + logger.info("-- Serializing graph to factoid file ({0})".format(factoid_file)) + factoid_graph.serialize(destination=factoid_file, + base=base_ref, + format='turtle') + + # else: # config.process_level == 'document' + # logger.debug("-- Process level: document") + # work_graph = structure.prepare_document_work(config) + # shacl_extraction.apply(config, work_graph) + + +#============================================================================== +# AMR Main Methods +#============================================================================== + +def create_ontology_from_amrld_file(amrld_file_path, + base_ontology_path=None, + onto_prefix=None, + out_file_path=None, + technical_dir_path=None): + """ + Method to create an ontology (as Turtle String) from a transduction + analysis of an AMRLD file. + + Parameters + ---------- + amrld_file_path: a path to an AMR-LD Turtle File. + base_ontology_path: a path to a Base Ontology Turtle File if defined. + onto_prefix: the target ontology prefix if defined (if not defined a prefix based on the amrld filename is used). + out_file_path: a file path where the output ontology is written if defined (the function still outputs the string). + technical_dir_path: a dir path where some technical and log files are written if defined. + + Returns + ------- + Ontology Turtle String. + + """ + + logger.info('[TENET] Extraction Processing') + + # -- Process Initialization + logger.info(' === Process Initialization === ') + logger.info('-- current dir: {0}'.format(os.getcwd())) + if onto_prefix is None: onto_prefix = 'DefaultTargetId' + args = { + 'source_type': 'amr', + 'source_corpus': amrld_file_path, + 'target_id': onto_prefix, + 'base_output_dir': out_file_path, + 'engine': 'tenet'} + config = set_config(args) + init_process(config) + + # -- Extraction Processing using TENET Engine + logger.info(' === Extraction Processing using New TENET Engine === ') + run_tenet_extraction(config) + + # -- Done + logger.info(' === Done === ') + dest_dir = config.output_dir + filePath = shutil.copy('tenet.log', dest_dir) + + +def create_ontology_from_amrld_dir(amrld_dir_path, + base_ontology_path=None, + onto_prefix=None, + out_file_path=None, + technical_dir_path=None): + """ + Method to create an ontology (as Turtle String) from a transduction + analysis of an AMRLD file. + + Parameters + ---------- + amrld_file_path: a path to an AMR-LD Turtle File. + base_ontology_path: a path to a Base Ontology Turtle File if defined. + onto_prefix: the target ontology prefix if defined (if not defined a prefix based on the amrld filename is used). + out_file_path: a file path where the output ontology is written if defined (the function still outputs the string). + technical_dir_path: a dir path where some technical and log files are written if defined. + + Returns + ------- + Dictionary [filename -> Ontology Turtle String]. + Complete Ontology Turtle String (synthesis of all ontology) + + """ + + pass + + +#============================================================================== +# UNL Main Methods +#============================================================================== + +def create_ontology_from_unlrdf_file(unlrdf_file_path, + base_ontology_path, + ontology_seed_path, + onto_prefix=None, + out_file_path=None, + technical_dir_path=None): + """ + Method to create an ontology (as Turtle String) from a transduction + analysis of an UNL-RDF file, using SHACL engine. + + Parameters + ---------- + amrld_file_path: a path to an AMR-LD Turtle File. + base_ontology_path: a path to a Base Ontology Turtle File if defined. + onto_prefix: the target ontology prefix if defined (if not defined a prefix based on the amrld filename is used). + out_file_path: a file path where the output ontology is written if defined (the function still outputs the string). + technical_dir_path: a dir path where some technical and log files are written if defined. + + Returns + ------- + Ontology Turtle String. + + """ + + logger.info('[TENET] Extraction Processing') + + # -- Process Initialization + logger.info(' === Process Initialization === ') + logger.info('-- current dir: {0}'.format(os.getcwd())) + if onto_prefix is None: onto_prefix = 'DefaultTargetId' + args = { + 'source_type': 'unl', + 'source_corpus': unlrdf_file_path, + 'target_id': onto_prefix, + 'base_output_dir': out_file_path, + 'engine': 'shacl'} + config = set_config(args) + config.process_level = 'document' + config.frame_ontology_file = base_ontology_path + config.frame_ontology_seed_file = ontology_seed_path + #config.output_ontology_namespace = onto_prefix + init_process(config) + + # -- Extraction Processing using SHACL Engine + logger.info(' === Extraction Processing using SHACL Engine === ') + logger.debug("-- Process level: document") + work_graph = structure.prepare_document_work(config) + shacl_extraction.apply(config, work_graph) + + # -- Done + logger.info(' === Done === ') + dest_dir = config.output_dir + filePath = shutil.copy('tenet.log', dest_dir) \ No newline at end of file diff --git a/structure/amr-rdf-schema.ttl b/tenet/structure/amr-rdf-schema.ttl similarity index 100% rename from structure/amr-rdf-schema.ttl rename to tenet/structure/amr-rdf-schema.ttl diff --git a/structure/base-ontology.ttl b/tenet/structure/base-ontology.ttl similarity index 100% rename from structure/base-ontology.ttl rename to tenet/structure/base-ontology.ttl diff --git a/structure/config-parameters.ttl b/tenet/structure/config-parameters.ttl similarity index 100% rename from structure/config-parameters.ttl rename to tenet/structure/config-parameters.ttl diff --git a/structure/cts/amr_ctr/generation.py b/tenet/structure/cts/amr_ctr/generation.py similarity index 100% rename from structure/cts/amr_ctr/generation.py rename to tenet/structure/cts/amr_ctr/generation.py diff --git a/structure/cts/amr_ctr/preprocessing.py b/tenet/structure/cts/amr_ctr/preprocessing.py similarity index 100% rename from structure/cts/amr_ctr/preprocessing.py rename to tenet/structure/cts/amr_ctr/preprocessing.py diff --git a/structure/cts/amr_ctr/preprocessing/amr_reification.py b/tenet/structure/cts/amr_ctr/preprocessing/amr_reification.py similarity index 100% rename from structure/cts/amr_ctr/preprocessing/amr_reification.py rename to tenet/structure/cts/amr_ctr/preprocessing/amr_reification.py diff --git a/structure/cts/amr_ctr/preprocessing/amrld_correcting.py b/tenet/structure/cts/amr_ctr/preprocessing/amrld_correcting.py similarity index 100% rename from structure/cts/amr_ctr/preprocessing/amrld_correcting.py rename to tenet/structure/cts/amr_ctr/preprocessing/amrld_correcting.py diff --git a/structure/cts/amr_ctr/transduction/atomic_extraction.py b/tenet/structure/cts/amr_ctr/transduction/atomic_extraction.py similarity index 100% rename from structure/cts/amr_ctr/transduction/atomic_extraction.py rename to tenet/structure/cts/amr_ctr/transduction/atomic_extraction.py diff --git a/structure/cts/amr_ctr/transduction/classification.py b/tenet/structure/cts/amr_ctr/transduction/classification.py similarity index 100% rename from structure/cts/amr_ctr/transduction/classification.py rename to tenet/structure/cts/amr_ctr/transduction/classification.py diff --git a/structure/cts/amr_ctr/transduction/composite_class_extraction_1.py b/tenet/structure/cts/amr_ctr/transduction/composite_class_extraction_1.py similarity index 100% rename from structure/cts/amr_ctr/transduction/composite_class_extraction_1.py rename to tenet/structure/cts/amr_ctr/transduction/composite_class_extraction_1.py diff --git a/structure/cts/amr_ctr/transduction/composite_class_extraction_2.py b/tenet/structure/cts/amr_ctr/transduction/composite_class_extraction_2.py similarity index 100% rename from structure/cts/amr_ctr/transduction/composite_class_extraction_2.py rename to tenet/structure/cts/amr_ctr/transduction/composite_class_extraction_2.py diff --git a/structure/cts/amr_ctr/transduction/composite_property_extraction.py b/tenet/structure/cts/amr_ctr/transduction/composite_property_extraction.py similarity index 100% rename from structure/cts/amr_ctr/transduction/composite_property_extraction.py rename to tenet/structure/cts/amr_ctr/transduction/composite_property_extraction.py diff --git a/structure/cts/amr_ctr/transduction/phenomena_application.py b/tenet/structure/cts/amr_ctr/transduction/phenomena_application.py similarity index 100% rename from structure/cts/amr_ctr/transduction/phenomena_application.py rename to tenet/structure/cts/amr_ctr/transduction/phenomena_application.py diff --git a/structure/cts/amr_ctr/transduction/phenomena_application_mod.py b/tenet/structure/cts/amr_ctr/transduction/phenomena_application_mod.py similarity index 100% rename from structure/cts/amr_ctr/transduction/phenomena_application_mod.py rename to tenet/structure/cts/amr_ctr/transduction/phenomena_application_mod.py diff --git a/structure/cts/amr_ctr/transduction/phenomena_checking.py b/tenet/structure/cts/amr_ctr/transduction/phenomena_checking.py similarity index 100% rename from structure/cts/amr_ctr/transduction/phenomena_checking.py rename to tenet/structure/cts/amr_ctr/transduction/phenomena_checking.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/builders.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/builders.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/builders.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/builders.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/class_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/class_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/class_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/class_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/composite_class_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/composite_class_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/composite_class_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/composite_class_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/composite_property_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/composite_property_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/composite_property_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/composite_property_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/logical_set_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/logical_set_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/logical_set_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/logical_set_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/property_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/property_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/property_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/property_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/restriction_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/restriction_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/restriction_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/restriction_net.py diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/value_net.py b/tenet/structure/cts/amr_ctr/transduction/query_builder/element/value_net.py similarity index 100% rename from structure/cts/amr_ctr/transduction/query_builder/element/value_net.py rename to tenet/structure/cts/amr_ctr/transduction/query_builder/element/value_net.py diff --git a/structure/cts/amr_ctr/transduction/technical_ctr.py b/tenet/structure/cts/amr_ctr/transduction/technical_ctr.py similarity index 100% rename from structure/cts/amr_ctr/transduction/technical_ctr.py rename to tenet/structure/cts/amr_ctr/transduction/technical_ctr.py diff --git a/structure/cts/amr_scheme_1.py b/tenet/structure/cts/amr_scheme_1.py similarity index 100% rename from structure/cts/amr_scheme_1.py rename to tenet/structure/cts/amr_scheme_1.py diff --git a/structure/cts/shacl_unl_cts_1.ttl b/tenet/structure/cts/shacl_unl_cts_1.ttl similarity index 100% rename from structure/cts/shacl_unl_cts_1.ttl rename to tenet/structure/cts/shacl_unl_cts_1.ttl diff --git a/structure/cts/unl_ctr/old_unl_ctr.py b/tenet/structure/cts/unl_ctr/old_unl_ctr.py similarity index 100% rename from structure/cts/unl_ctr/old_unl_ctr.py rename to tenet/structure/cts/unl_ctr/old_unl_ctr.py diff --git a/structure/cts/unl_ctr/unl_ctr_data_preprocessing.py b/tenet/structure/cts/unl_ctr/unl_ctr_data_preprocessing.py similarity index 100% rename from structure/cts/unl_ctr/unl_ctr_data_preprocessing.py rename to tenet/structure/cts/unl_ctr/unl_ctr_data_preprocessing.py diff --git a/structure/cts/unl_ctr/unl_ctr_net_expansion.py b/tenet/structure/cts/unl_ctr/unl_ctr_net_expansion.py similarity index 100% rename from structure/cts/unl_ctr/unl_ctr_net_expansion.py rename to tenet/structure/cts/unl_ctr/unl_ctr_net_expansion.py diff --git a/structure/cts/unl_ctr/unl_ctr_owl_generation.py b/tenet/structure/cts/unl_ctr/unl_ctr_owl_generation.py similarity index 100% rename from structure/cts/unl_ctr/unl_ctr_owl_generation.py rename to tenet/structure/cts/unl_ctr/unl_ctr_owl_generation.py diff --git a/structure/cts/unl_ctr/unl_ctr_test.py b/tenet/structure/cts/unl_ctr/unl_ctr_test.py similarity index 100% rename from structure/cts/unl_ctr/unl_ctr_test.py rename to tenet/structure/cts/unl_ctr/unl_ctr_test.py diff --git a/structure/cts/unl_cts_1.py b/tenet/structure/cts/unl_cts_1.py similarity index 100% rename from structure/cts/unl_cts_1.py rename to tenet/structure/cts/unl_cts_1.py diff --git a/structure/cts/unl_cts_test.py b/tenet/structure/cts/unl_cts_test.py similarity index 100% rename from structure/cts/unl_cts_test.py rename to tenet/structure/cts/unl_cts_test.py diff --git a/structure/dash-data-shapes.ttl b/tenet/structure/dash-data-shapes.ttl similarity index 100% rename from structure/dash-data-shapes.ttl rename to tenet/structure/dash-data-shapes.ttl diff --git a/structure/seedSchema.ttl b/tenet/structure/seedSchema.ttl similarity index 100% rename from structure/seedSchema.ttl rename to tenet/structure/seedSchema.ttl diff --git a/structure/semantic-net.ttl b/tenet/structure/semantic-net.ttl similarity index 100% rename from structure/semantic-net.ttl rename to tenet/structure/semantic-net.ttl diff --git a/structure/unl-rdf-schema.ttl b/tenet/structure/unl-rdf-schema.ttl similarity index 100% rename from structure/unl-rdf-schema.ttl rename to tenet/structure/unl-rdf-schema.ttl diff --git a/tenet/tenet.log b/tenet/tenet.log new file mode 100644 index 0000000000000000000000000000000000000000..4020b83a92ec005dc801a1e1ae0e1f19e50b9fdc --- /dev/null +++ b/tenet/tenet.log @@ -0,0 +1,236 @@ +- INFO - [TENET] Extraction Processing +- INFO - === Process Initialization === +- INFO - -- current dir: /home/lamenji/Workspace/Tetras/tenet/tenet +- INFO - -- Process Setting +- INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/ (amr) +- INFO - ----- Base output dir: ./../output/ +- INFO - ----- Ontology target (id): SolarSystemDev2 +- DEBUG - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet +- DEBUG - ----- Config file: config.xml +- DEBUG - + *** Config (Full Parameters) *** + -- Base Parameters + ----- config file: config.xml + ----- uuid: SolarSystemDev2 + ----- source corpus: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/ + ----- target reference: base + ----- extraction engine: tenet + ----- process level: sentence + ----- source type: amr + -- Compositional Transduction Scheme (CTS) + ----- CTS reference: amr_scheme_1 + -- Directories + ----- base directory: ./ + ----- structure directory: ./structure/ + ----- CTS directory: ./structure/cts/ + ----- target frame directory: ./../input/targetFrameStructure/ + ----- input document directory: + ----- base output dir: ./../output/ + ----- output directory: ./../output/SolarSystemDev2-20230123/ + ----- sentence output directory: ./../output/SolarSystemDev2-20230123/ + ----- SHACL binary directory: ./lib/shacl-1.3.2/bin + -- Config File Definition + ----- schema file: ./structure/amr-rdf-schema.ttl + ----- semantic net file: ./structure/semantic-net.ttl + ----- config param file: ./structure/config-parameters.ttl + ----- base ontology file: ./structure/base-ontology.ttl + ----- CTS file: ./structure/cts/amr_scheme_1.py + ----- DASH file: ./structure/dash-data-shapes.ttl + -- Useful References for Ontology + ----- base URI: https://tenet.tetras-libre.fr/working + ----- ontology suffix: -ontology.ttl + ----- ontology seed suffix: -ontology-seed.ttl + -- Source File Definition + ----- source sentence file: /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/**/*.ttl + -- Target File Definition + ----- frame ontology file: ./../input/targetFrameStructure/base-ontology.ttl + ----- frame ontology seed file: ./../input/targetFrameStructure/base-ontology-seed.ttl + -- Output + ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/ + ----- output file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2.ttl + *** - *** +- INFO - -- Creating output target directory: ./../output/SolarSystemDev2-20230123/ +- DEBUG - -- Counting number of graph files (sentences) +- DEBUG - ----- Graph count: 1 +- INFO - === Extraction Processing using New TENET Engine === +- DEBUG - -- Process level: sentence +- INFO - *** sentence 1 *** +- INFO - -- Work Structure Preparation +- DEBUG - --- Graph Initialization +- DEBUG - ----- Configuration Loading +- DEBUG - -------- RDF Schema (302) +- DEBUG - -------- Semantic Net Definition (509) +- DEBUG - -------- Config Parameter Definition (543) +- DEBUG - ----- Frame Ontology Loading +- DEBUG - -------- Base Ontology produced as output (573) +- DEBUG - --- Source Data Import +- DEBUG - ----- Sentence Loading +- DEBUG - -------- /home/lamenji/Workspace/Tetras/tenet/tenet/../input/amrDocuments/dev/solar-system-2/SSC-02-01.stog.amr.ttl (648) +- DEBUG - --- Export work graph as turtle +- DEBUG - ----- Work graph file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2.ttl +- INFO - ----- Sentence (id): SSC-02-01 +- INFO - ----- Sentence (text): Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies. +- DEBUG - --- Ending Structure Preparation +- DEBUG - ----- Total Execution Time = 0:00:00.221861 +- INFO - -- Loading Extraction Scheme (amr_scheme_1) +- DEBUG - ----- Step number: 3 +- INFO - -- Loading Extraction Rules (amr_ctr/*) +- DEBUG - ----- Total rule number: 100 +- INFO - -- Applying extraction step: preprocessing +- INFO - --- Sequence: amrld-correcting-sequence +- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (648, 0:00:00.063585) +- INFO - --- Sequence: amr-reification-sequence +- INFO - ----- reclassify-concept-1: 10/10 new triples (658, 0:00:00.255596) +- INFO - ----- reclassify-concept-2: 8/8 new triples (666, 0:00:00.212474) +- INFO - ----- reclassify-concept-3: 12/12 new triples (678, 0:00:00.108331) +- INFO - ----- reclassify-concept-4: 28/28 new triples (706, 0:00:00.141263) +- INFO - ----- reclassify-concept-5: 4/4 new triples (710, 0:00:00.111340) +- INFO - ----- reify-roles-as-concept: 5/5 new triples (715, 0:00:00.256176) +- INFO - ----- reclassify-existing-variable: 81/81 new triples (796, 0:00:00.082666) +- INFO - ----- add-new-variable-for-reified-concept: 4/4 new triples (800, 0:00:00.113368) +- INFO - ----- add-amr-leaf-for-reclassified-concept: 60/60 new triples (860, 0:00:00.109076) +- INFO - ----- add-amr-leaf-for-reified-concept: 4/4 new triples (864, 0:00:00.070734) +- INFO - ----- add-amr-edge-for-core-relation: 54/54 new triples (918, 0:00:00.249144) +- INFO - ----- add-amr-edge-for-reified-concept: 6/6 new triples (924, 0:00:00.262862) +- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (929, 0:00:00.272061) +- INFO - ----- add-value-for-quant-relation: 5/5 new triples (934, 0:00:00.212638) +- DEBUG - ----- add-amr-edge-for-polarity-relation: 0/0 new triple (934, 0:00:00.189944) +- INFO - ----- update-amr-edge-role-1: 22/22 new triples (956, 0:00:00.135501) +- INFO - ----- add-amr-root: 5/5 new triples (961, 0:00:00.063951) +- DEBUG - --- Serializing graph to SolarSystemDev2_preprocessing +- DEBUG - ----- step: preprocessing +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_preprocessing.ttl +- DEBUG - ----- base: http://SolarSystemDev2/preprocessing +- INFO - ----- 313 triples extracted during preprocessing step +- INFO - -- Applying extraction step: transduction +- INFO - --- Sequence: atomic-extraction-sequence +- INFO - ----- create-atom-class-net: 66/66 new triples (1027, 0:00:00.205358) +- DEBUG - ----- (refinement) refine-cover-node-1: 11 new triples (1038) +- DEBUG - ----- (refinement) refine-cover-node-2: 11 new triples (1049) +- INFO - ----- create-individual-net-1: 7/7 new triples (1056, 0:00:00.340427) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1057) +- INFO - ----- create-atom-property-net-1: 79/79 new triples (1136, 0:00:00.350859) +- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (1142) +- INFO - ----- create-value-net: 15/15 new triples (1157, 0:00:00.129601) +- INFO - ----- create-phenomena-net-1: 46/47 new triples (1203, 0:00:00.263702) +- DEBUG - ----- (refinement) refine-cover-node-1: 4 new triples (1207) +- INFO - --- Sequence: atomic-extraction-sequence +- INFO - ----- create-atom-class-net: 3/88 new triples (1210, 0:00:00.436599) +- DEBUG - ----- create-individual-net-1: 0/9 new triple (1210, 0:00:00.198890) +- INFO - ----- create-atom-property-net-1: 1/86 new triple (1211, 0:00:00.418289) +- DEBUG - ----- create-value-net: 0/15 new triple (1211, 0:00:00.104408) +- INFO - ----- create-phenomena-net-1: 1/48 new triple (1212, 0:00:00.287131) +- INFO - --- Sequence: phenomena-application-polarity-sequence +- DEBUG - ----- polarity-phenomena-application: 0/0 new triple (1212, 0:00:00.248087) +- INFO - --- Sequence: phenomena-application-mod-sequence +- INFO - ----- mod-phenomena-application-1: 22/22 new triples (1234, 0:00:00.259196) +- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1236) +- INFO - ----- mod-phenomena-application-2: 9/13 new triples (1245, 0:00:00.150155) +- INFO - ----- mod-phenomena-application-3: 20/20 new triples (1265, 0:00:01.649060) +- INFO - --- Sequence: phenomena-application-and-sequence +- INFO - ----- and-conjunction-phenomena-application-1: 21/25 new triples (1286, 0:00:00.584410) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1287) +- INFO - ----- and-conjunction-phenomena-application-2: 1/1 new triple (1288, 0:00:00.297623) +- INFO - ----- and-conjunction-phenomena-application-3: 23/23 new triples (1311, 0:00:01.187014) +- DEBUG - ----- and-conjunction-phenomena-application-4: 0/0 new triple (1311, 0:00:00.306494) +- DEBUG - ----- and-conjunction-phenomena-application-5: 0/0 new triple (1311, 0:00:00.184335) +- DEBUG - ----- and-conjunction-phenomena-application-6: 0/0 new triple (1311, 0:00:00.428488) +- INFO - --- Sequence: phenomena-checking-sequence +- INFO - ----- expand-and-conjunction-phenomena-net: 5/5 new triples (1316, 0:00:00.025822) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triple (1316, 0:00:00.019558) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triple (1316, 0:00:00.021906) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triple (1316, 0:00:00.019253) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triple (1316, 0:00:00.018793) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triple (1316, 0:00:00.016673) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triple (1316, 0:00:00.018510) +- INFO - --- Sequence: composite-property-extraction-sequence +- INFO - ----- create-composite-class-net-from-property-1: 9/10 new triples (1325, 0:00:00.169367) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1327) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1327, 0:00:00.501036) +- INFO - --- Sequence: composite-class-extraction-sequence-1 +- INFO - ----- create-composite-class-net-from-property-1: 32/32 new triples (1359, 0:00:00.490276) +- DEBUG - ----- (refinement) refine-cover-node-1: 7 new triples (1366) +- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1368) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1368, 0:00:00.337722) +- INFO - ----- create-composite-class-net-from-property-3: 7/9 new triples (1375, 0:00:00.249603) +- INFO - --- Sequence: composite-class-extraction-sequence-2 +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triple (1375, 0:00:00.095723) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triple (1375, 0:00:00.083703) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triple (1375, 0:00:00.082717) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triple (1375, 0:00:00.145369) +- INFO - --- Sequence: restriction-adding-sequence +- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triple (1375, 0:00:00.136866) +- INFO - --- Sequence: classification-sequence +- INFO - ----- classify-net-from-core-1: 4/4 new triples (1379, 0:00:00.019407) +- INFO - ----- classify-net-from-core-2: 7/7 new triples (1386, 0:00:00.017836) +- INFO - ----- classify-net-from-core-3: 14/15 new triples (1400, 0:00:00.117178) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1402) +- DEBUG - ----- classify-net-from-part: 0/0 new triple (1402, 0:00:00.020002) +- DEBUG - ----- classify-net-from-domain: 0/0 new triple (1402, 0:00:00.016390) +- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triple (1402, 0:00:00.028859) +- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triple (1402, 0:00:00.074962) +- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triple (1402, 0:00:00.016461) +- INFO - ----- propagate-individual-1: 6/6 new triples (1408, 0:00:00.017291) +- DEBUG - ----- propagate-individual-2: 0/0 new triple (1408, 0:00:00.014734) +- DEBUG - ----- reclassify-deprecated-net: 0/0 new triple (1408, 0:00:00.010435) +- DEBUG - --- Serializing graph to SolarSystemDev2_transduction +- DEBUG - ----- step: transduction +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_transduction.ttl +- DEBUG - ----- base: http://SolarSystemDev2/transduction +- INFO - ----- 447 triples extracted during transduction step +- INFO - -- Applying extraction step: generation +- INFO - --- Sequence: main-generation-sequence +- INFO - ----- compute-uri-for-owl-declaration-1: 11/11 new triples (1419, 0:00:00.042573) +- INFO - ----- compute-uri-for-owl-declaration-2: 2/4 new triples (1421, 0:00:00.030962) +- INFO - ----- compute-uri-for-owl-declaration-3: 5/5 new triples (1426, 0:00:00.072081) +- INFO - ----- compute-uri-for-owl-declaration-4: 4/4 new triples (1430, 0:00:00.042480) +- INFO - ----- compute-uri-for-owl-declaration-5: 7/7 new triples (1437, 0:00:00.046145) +- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1443, 0:00:00.045326) +- INFO - ----- generate-atom-class: 21/21 new triples (1464, 0:00:00.021822) +- INFO - ----- classify-atom-class-1: 5/5 new triples (1469, 0:00:00.012577) +- INFO - ----- classify-atom-class-2: 2/2 new triples (1471, 0:00:00.025550) +- INFO - ----- generate-individual: 8/12 new triples (1479, 0:00:00.020598) +- INFO - ----- classify-individual-1: 3/3 new triples (1482, 0:00:00.013684) +- INFO - ----- classify-individual-2: 4/4 new triples (1486, 0:00:00.022098) +- INFO - ----- generate-atom-property-1: 24/24 new triples (1510, 0:00:00.016533) +- INFO - ----- generate-atom-property-12: 12/24 new triples (1522, 0:00:00.019803) +- DEBUG - ----- generate-inverse-relation: 0/0 new triple (1522, 0:00:00.016910) +- INFO - ----- generate-composite-class: 16/16 new triples (1538, 0:00:00.016133) +- DEBUG - ----- add-restriction-to-class-1: 0/0 new triple (1538, 0:00:00.030055) +- DEBUG - ----- add-restriction-to-class-2: 0/0 new triple (1538, 0:00:00.026329) +- INFO - ----- add-restriction-to-class-3: 8/10 new triples (1546, 0:00:00.026526) +- DEBUG - ----- add-restriction-to-class-4: 0/0 new triple (1546, 0:00:00.030454) +- DEBUG - ----- add-restriction-to-class-5: 0/0 new triple (1546, 0:00:00.028433) +- DEBUG - ----- add-restriction-to-class-6: 0/0 new triple (1546, 0:00:00.026669) +- INFO - ----- generate-composite-property: 4/4 new triples (1550, 0:00:00.018479) +- DEBUG - --- Serializing graph to SolarSystemDev2_generation +- DEBUG - ----- step: generation +- DEBUG - ----- id: SolarSystemDev2 +- DEBUG - ----- work_file: ./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_generation.ttl +- DEBUG - ----- base: http://SolarSystemDev2/generation +- INFO - ----- 142 triples extracted during generation step +- INFO - -- Result: file containing only the factoids +- DEBUG - --- Making factoid graph with the last step result +- DEBUG - ----- Number of factoids: 162 +- DEBUG - ----- Graph base: http://SolarSystemDev2/factoid +- DEBUG - --- Serializing graph to factoid file (./../output/SolarSystemDev2-20230123/SolarSystemDev2-1/SolarSystemDev2_factoid.ttl) +- INFO - + *** Execution Time *** +----- Function: apply (lib.tenet_extraction) +----- Total Time: 0:00:17.924268 +----- Process Time: 0:00:17.785389 + *** - *** +- INFO - === Final Ontology Generation === +- INFO - -- Making complete factoid graph by merging sentence factoid graphs +- INFO - ----- Total factoid number: 162 +- INFO - ----- Graph base: http://SolarSystemDev2/factoid +- INFO - -- Serializing graph to factoid file (./../output/SolarSystemDev2-20230123/SolarSystemDev2_factoid.ttl) +- INFO - + *** Execution Time *** +----- Function: run_tenet_extraction (tenet.main) +----- Total Time: 0:00:18.174650 +----- Process Time: 0:00:18.011748 + *** - *** +- INFO - === Done === diff --git a/lib/timer.py b/tenet/utility/timer.py similarity index 100% rename from lib/timer.py rename to tenet/utility/timer.py diff --git a/config_test.xml b/test/config_test.xml similarity index 100% rename from config_test.xml rename to test/config_test.xml