Este projeto fornece um middleware entre uma ontologia legal e um sistema multiagente. A ontologia legal é oriunda do modelo criado na tese de doutorado de Fábio Aiub Sperotto sobre a legislação brasileira (ver publicações). Uma cópia desta ontologia é fornecida no diretório /ontologies. Utiliza como referência para testes as leis:
- Lei 7653 de 1988 sobre pescaria na época de reprodução de peixes.
- Lei 5197 de 1967 sobre a caça de animais.
This project provides a middleware between a legal ontology and multiagent systems. The legal ontology is from an ontology model created in a PhD thesis of Fábio Aiub Sperotto about the Brazilian legislation (see publications). A copy of this ontology can be found in /ontologies folder. For testing purposes, use the following laws as a reference:
- Lei 7653 de 1988 about fishing in reprodution period of fishes.
- Lei 5197 de 1967 about animal hunting.
This repository is for development purposes and the download of the last version of the middleware. Applications and other examples of this project can be found in:
- Multiagent Systems Simulation with JaCaMo and AgentDevLaw: https://github.com/fabiosperotto/legislative-simulation.
- Multiagent Systems Simulation with JADE and AgentDevLaw: https://github.com/fabiosperotto/legislative-simulation-jade.
- Funciona com ontologias em arquivos OWL ou através de ontologias online (servidores SPARQL).
- Com o modelo de ontologia legal (/ontologies), fornece métodos para encontrar normas e consequências. Procura por instâncias de leis, normas, predicados e indivíduos que expliquem as regulamentações de uma ação.
- Fornece métodos para compreender dados e tipos de dados da ontologia.
- O método padrão (zero ou 0) de busca configura a engine para pesquisar legislações a partir das ações do agente. Pode ser alterado o método de busca no arquivo config.properties em tempo de execução.
- O método 1 de busca combina a ação do agente com as anotações de comentários das instâncias de Legislação, através de similaridades de texto (é utilizado a distância coseno). pode ser alterado o método de busca no arquivo config.properties em tempo de execução.
- Works with ontology in OWL file or through online ontologies (SPARQL services).
- With the legal ontology model (/ontologies), provide methods to find norms, consequences. Search for laws instances, norms, predicate and individuals that explain the regulations of any agent's action.
- Provide methods to understand ontology data and data types.
- The default search method (zero or 0) set the engine to search legislations from the agents' actions. The search method can be changed in config.properties file in runtime.
- The search method 1 combines the agent action with the Legislation instance comments annotation. In this case, use the cosine distance for a better text similarity approach. The search method can be changed in config.properties file in runtime.
The necessary legal ontology referenced by this system is in /ontologies/agentdevlaw_english_base.owl. The file was edited using the Protégé desktop version (5.2.0).
- Criar projeto com as classes de /src
- No classpath do projeto, adicionar .jar externos referente ao framework Jena. Os componentes podem ser encontrados em apache-jena-X.X.X/lib (X -> número da versão). O download do framework pode ser feito aqui.
- Coloque também os pacotes do diretório /vendor no classpath que são itens extras para funcionamento das manipulações de ontologias pelo middleware (ver Dependencies).
- É necessário uma ontologia de referência para ser utilizada como base de conhecimento, uma ontologia é fornecida no diretório /bases como exemplo. Pode ser levantado um serviço de consultas SPARQL com o arquivo OWL fornecido (ver Fuseki abaixo).
Unit tests are available in tests package (jUnit 4 is in used).
Para gerar uma lib a fim de ser utilizada em outros projetos ou em plataformas de simulação de agentes, execute os passos (para Eclipse):
- Clique com o botão direito no projeto > Export;
- Dentro das opções do wizard escolha Java > Runnable JAR file
- Na tela seguinte escolha a opção Extract required libraries into generated JAR, para que as bibliotecas dependentes do Jena possam ser extraídas corretamente e reunidas junta com as demais classes deste projeto. Em seguida só escolher caminho e nome desejado para o .jar a ser gerado.
Fuseki é um servidor SPARQL onde ontologias podem ser fornecidas através de um webservice, servindo como endpoint para efetuar consultas. É utilizado neste projeto desde sua primeira versão.
All dependencies package are in vendor folder:
- OWL API, owlapi-distribution-5.1.2
- ONT-API, ontapi-2.0.0
- javax.inject-1
- guice-4.2.2
- guava-28.2-jre
- eclipse-rdf4j-3.0.4-onejar
- commons-rdf-api-0.5.0
- caffeine-2.8.1
- Fábio Aiub Sperotto fabio.aiub@gmail.com
This is a product of PhD thesis of Fábio Aiub Sperotto
- SPEROTTO, Fábio Aiub; BELCHIOR, Mairon; DE AGUIAR, Marilton Sanchotene. Ontology-Based Legal System in Multi-agents Systems. In: Mexican International Conference on Artificial Intelligence. Springer, Cham, 2019. p. 507-521.