Code Monkey home page Code Monkey logo

kaljurand / aceview Goto Github PK

View Code? Open in Web Editor NEW
8.0 4.0 2.0 13.33 MB

ACE View is a natural language based ontology and rule editor. ACE View uses Attempto Controlled English (ACE) in the front-end, and Web Ontology Language (OWL) and Semantic Web Rule Language (SWRL) in the back-end. ACE View has been implemented as a plug-in for Protégé 4

Home Page: http://attempto.ifi.uzh.ch/aceview/

License: Other

HTML 9.44% Shell 0.36% JavaScript 0.39% Java 89.13% XSLT 0.67%
java ace attempto owl swrl protege

aceview's Introduction

= ACE View for developers =

Author: Kaarel Kaljurand
Version: 2011-03-18

== License ==

Copyright 2008-2011, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).

ACE View is free software licensed under the GNU Lesser General Public
License (see LICENSE.txt and http://www.gnu.org/licenses/lgpl.html).

See <http://attempto.ifi.uzh.ch/aceview/> for the documentation and
information about the used third-party libraries.


== Introduction ==

In the following, "Protege" means "Protege 4.1".

== Read first ==

http://protegewiki.stanford.edu/wiki/Protege4DevDocs

== Files ==

Note: the files do not include Protege and OWL API jars. You have to install
Protege separately and set up the paths (as described below) to access the Protege jar-files.

* README.txt: this file
* RELEASE_NOTES.html: release notes
* build.xml: Ant build-file for ACE View
* lib/: external jar-files used by ACE View
* licenses/: licenses of the external jar-files
* META-INF/MANIFEST.MF: Manifest file for the ACE View jar-file
* plugin.xml: Protege plug-in file for ACE View
* src/: ACE View source files (in Java)
* test/: ACE View unit tests
* viewconfig-aceviewtab.xml: Protege viewconfig-file for ACE View (specifies the layout of the ACE View views)

=== Eclipse files ==

Only needed if you intend to use Eclipse to make changes to ACE View.

* .classpath: Eclipse classpath configuration
* .project: Eclipse project file
* .settings/: Eclipse settings files

=== Automatically generated files ==

* classes/: directory into which the Java class files will be generated (by Eclipse)
* build/: directory into which the Java class files will be generated (by Ant)
* javadoc/: directory into which the Java class files will be generated (by Ant)


== Getting the source code of Protege, building it and running the result ==

In order to build ACE View from the sources you don't need the sources
of Protege or OWL-API, just download and install the latest released version
of Protege and set the environment variable $PROTEGE_HOME to the root
folder of this new installation. Note however that we develop (at least at the moment)
against the latest svn version of Protege which means that ACE View is less likely
to compile against the latest released version (depending on the time difference
the latest Protege release has compared to its latest svn version).
So it's a better idea to fetch the Protege sources from the svn, as described next.

1. Read:

http://protegewiki.stanford.edu/wiki/Protege4DevDocs#Building_Protege4.1_from_scratch_using_ant

2. Set $PROTEGE_HOME (e.g. "export PROTEGE_HOME=${HOME}/TEST/Protege/")

3. Check out and install Protege
(see the Bash-script utils/checkout_and_install_protege.bash)

4. cd $PROTEGE_HOME

5. sh run.sh

[BUG: rewrite. You could also specify the revision of Protege to be checked out
so that the Protege source matches
the source that ACE View was tested against. (See the ACE View RELEASE_NOTES.txt for
information on which Protege revision was used.)]

[BUG: rewrite. Do it if you need to make sure that your local copy of Protege contains
the last revision of Protege. Note that updating to the latest revision might break
some of the ACE View code, so it is useful to have two revisions checked out,
one that seems stable and the other that is the latest. You can develop against the
stable revision and occasionally test against that latest one.]


== Setting up the ACE View Eclipse project ==

We have tested the following with
* Eclipse 3.5.2 on OS X 10.4 using Java 1.5
* Eclipse 3.6.1 on Ubuntu 10.04 using Java 1.6.

* Launch Eclipse and create a new Java project

1. Choose: File -> New -> Project ...
2. Set project name: ACE View 1.3
3. Create project from existing source (in Eclipse 3.6 it is called a "nondefault location").
4. Choose the folder: the root directory of the ACE View source (must contain the .classpath file)
5. Configure the Eclipse variable PROTEGE41 (see the instructions below)
6. The project is now going to be rebuilt resulting in no errors and some warnings.
(There will be more warnings if you use Java 1.6, but don't worry about them.)

The paths to the external jars are configured automatically based on the .classpath file.
But you have to additionally set the Eclipse variable PROTEGE41 to point to $PROTEGE_HOME
so that the Protege and OWL-API jars can be accessed.
(You can also set PROTEGE41_SRC to point to the the Protege sources.)
To do that follow this path of menus (in Eclipse 3.6.1):
Project -> Properties -> Java Build Path -> Libraries -> Edit... -> Variable... -> New...
Now type in the new variable PROTEGE41 and set the folder to whereever you have
installed Protege.

=== More notes ===

* For spellchecking use the dictionary (i.e. list of exceptional words) utils/eclipse_dictionary.txt


== Building ACE View and integrating it with Protege ==

* Set $PROTEGE_HOME (put this into .bashrc or a similar startup script)

* Go into the ACE View directory (must contain build.xml)

* ant install: builds ACE View and installs it into $PROTEGE_HOME plugins directory

* ant run: same as "ant install" but additionally starts Protege



= Code =

== Layout ==

./ch/uzh/ifi/attempto/ace:
	This package contains some general ACE utilities:
	tokenizer, sentence splitter.
	These will distributed in the Attempto Java Packages at some point, i.e.
	they will not stay in the ACE View source tree.

./ch/uzh/ifi/attempto/aceview:
	Most notable classes are:
	ACESnippet: representation of a snippet
	ACEText: representation of an ACE text (= ordered set of snippets)
	ACETextManager: lots of important static methods, many generate events
	in case a change in the ACE text occurs.
	ACEPreferences: model for the ACE View preferences
	ACEPreferencesPanel: UI for the ACE View preferences
	ACEViewTab: implementation of the ACE View tab. Listens to Protege events and
	translates them to ACE View events.

./ch/uzh/ifi/attempto/aceview/lexicon:
	This package contains classes for managing the ACE lexicon:
	ACE lexicon entry types (noun, verb, proper name),
	ACE lexicon field types (sg, pl, vbg),
	auto-completer.

./ch/uzh/ifi/attempto/aceview/model:
	This package contains table models. Most of the UI in ACE View is based on tables.
	These tables get their data from the table models in this package.

./ch/uzh/ifi/attempto/aceview/model/event:
	Events, event type enums, event listener interfaces

./ch/uzh/ifi/attempto/aceview/predicate:
	This package contains various implementations of the SwingX's HighlightPredicate interface.
	Used for highlighting entity selections, error messages, etc.

./ch/uzh/ifi/attempto/aceview/ui:
	This package contains:
	ACESnippetEditor: used by ACE Snippet Editor (extended version of JTextArea)
	ACETable: used by all ACE View tables (extended version of JXTable)
	SnippetAutocompleter: pop-up that shows auto-completer results (customized version of a similar
		auto-completer in Protege)

./ch/uzh/ifi/attempto/aceview/ui/action:
	This package contains the implementation of two "actions" currently provided by ACE View

./ch/uzh/ifi/attempto/aceview/ui/util:
	This package contains some utilities, e.g. for an easier creation of the ACE View UI.

./ch/uzh/ifi/attempto/aceview/ui/view:
	Implementations of ACE View view components.

./ch/uzh/ifi/attempto/aceview/util:
	Some utilities.


= Other =

== Version numbers ==

Before every release,
modify these files to update the ACE View version number:

* build.xml
* plugin.xml
* RELEASE_NOTES.html
* update.properties (updated automatically by "ant dist")

== SVN properties ==

RELEASE_NOTES.html must be served as text/html by Google.
To check if it has the right svn property:

$ svn propget svn:mime-type RELEASE_NOTES.html
text/html

if not then:

$ svn propset svn:mime-type "text/html" RELEASE_NOTES.html

== Protege and ACE View preferences ==

See: http://protegewiki.stanford.edu/wiki/ClearingP4Preferences

Linux: ~/.java/.userPrefs
Mac OS X: ~/Library/Preferences/com.apple.java.util.prefs.plist
Windows: Windows Registry at HKEY_CURRENT_USER/Software/JavaSoft/Prefs

== Other ==

What is the simplest way of replacing a file in a zip archive?
Something like:

zip -in ch.uzh.ifi.attempto.aceview.ui.view.jar -replace lib/jpl.jar -with /usr/lib/blah/jpl.jar

aceview's People

Contributors

kaljurand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aceview's Issues

Q&A View must count and display the answers taking identical individuals and equivalent classes into account

For example, the answer to the question "Who is a fireman?" should be:

Individuals (3): {Bill William}, Bob, John
Subclasses (0):
Superclasses (2): human, {man male}

where identical but differently named individuals should be grouped,
as should be sub/super classes which are equivalent.

To make this work for individuals make sure that the NodeSet policy
used by the reasoner is IndividualNodeSetPolicy.BY_SAME_AS
(note that the OWL-API default is BY_NAME).

Original issue reported on code.google.com by kaljurand on 12 Oct 2010 at 9:31

Create a port for the Neon Toolkit

Suggested by Kenneth Jones in

https://lists.ifi.uzh.ch/pipermail/attempto/2010-July/000571.html

Original issue reported on code.google.com by kaljurand on 16 Jul 2010 at 11:49

  • Blocked on: #6

No support for namespaces

It is not possible to explicitly refer to e.g. foaf:Person from the FOAF
ontology, i.e. sentences like (1) are not supported.

(1) Every my:person is a foaf:Person and every foaf:Person is a my:person.

==Solution==
A simple solution would leave ACE/APE unchanged. The idea: allow prefixing
all the content words in the snippet with the namespace prefixes registered
in Protege (check which characters are allowed in a prefix), e.g. allow
snippets like:

(2) yahoo:John knows google:John.

When the snippet is parsed, the prefixes are analysed and the corresponding
lexicon entries are generated on the bases of the ACE View lexicon, e.g. if
the Protege prefix definitions are:

default: default.org
google: google.com
yahoo: yahoo.com

and the lexicon is:

google.com#John: John
yahoo.com#John: John
default.org#know: knows, know, known

Then generate a new snippet and its corresponding lexicon to be sent to APE
as follows:

`yahoo:John` knows `google:John`.

pn(sg, yahoo:John, yahoo.com#John)
pn(sg, google:John, google.com#John)
tv(sg, knows, default.org#know)

i.e. the wordform argument in the lexicon would contain the prefix unless
the word comes from the default namespace; and the lemma argument would be
a full IRI.

Original issue reported on code.google.com by kaljurand on 23 May 2010 at 2:10

ACE->OWL/SWRL & OWL->ACE Service Custom Preferences Not Sticky

What steps will reproduce the problem?
1. Open ACE View Preferences
2. Edit the URL for either service to change it to something not in the 
drop-down (e.g., http://myserver.com:8090/)
3. Click OK
4. Reopen ACE View Preferences.

What is the expected output? What do you see instead?
I would expect customized server designations to be saved.  It would also be 
useful to remove the list of webservices to an external properties or xml file 
instead of being hardcoded in the java code, so that the dropdown presented to 
the user is installation-specific.

What version of the product are you using? On what operating system?
ACE View 1.3.0 + Protege 4.1 Beta build 213.

Please provide any additional information below.

My installation requires that I set up shared APE and OWL Verbalizer services 
inside my firewall that are accessible from multiple PCs running Protege.  The 
current limitation requires that each PC run its own instance of the servers.  

Original issue reported on code.google.com by [email protected] on 3 Mar 2011 at 2:24

Update to the latest (official) radixtree

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


Please use labels and text to provide additional information.


Original issue reported on code.google.com by kaljurand on 6 Oct 2009 at 5:41

Improve the display of error messages

Do not show error messages (e.g. "Accessing OWL->ACE webservice failed") via 
popups. Instead, use the Protege error message pane.

Original issue reported on code.google.com by kaljurand on 29 Jul 2011 at 12:50

Table cells are not editable

In v1.3.0 the table cells are not editable anymore when double-clicked.

Original issue reported on code.google.com by kaljurand on 15 Nov 2010 at 8:12

OWL 2 support and Protege 4.0.x

The ACE View plugin for Protege is currently only compatible with Protege 
versions 4.0.x. However, Protege 4.0.x does not have full OWL 2 support. 

This is a particular problem for ACE since it makes extensive use of 
annotations on axioms. Protege 4.0.x uses an unofficial and old vocabulary in 
the serialisation of these annotations to RDF/XML and Turtle. The resulting 
files are not OWL 2 DL compatible (they are OWL 2 Full). 

Although the ontologies can be reloaded and saved in Protege 4.1 (which does 
have OWL 2 support), the resulting file can then no longer be loaded in Protege 
4.0.x 

Original issue reported on code.google.com by [email protected] on 16 Jul 2010 at 12:44

  • Blocking: #5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.