nextcenturycorporation / aida-interchange-format Goto Github PK
View Code? Open in Web Editor NEWJava/python library and validator for the AIDA Interchange Format (AIF). Originally based on isi-vista/gaia-interchange.
License: MIT License
Java/python library and validator for the AIDA Interchange Format (AIF). Originally based on isi-vista/gaia-interchange.
License: MIT License
This is extending what was done in #88 to this new function.
For BBN, we find it useful to diff our output when running regression tests, so avoiding blank nodes is important as they are printed in a non-deterministic order.
After installation, there are only 3 executable binaries can be found in target/appassembler/bin
, which are coldstart2Gaia
, validateAIF
, and images2Aif
. So, coldstart2Gala
should be renamed to coldstart2AidaInterchange
according to README, right?
I noticed that in seedling-ontology.ttl
, some properties like ldcOnt:genafl_apora
and ldcOnt:genafl_more
are all defined as owl:Class
. But since they can only show at rdf:predicate
, shouldn't they be defined as owl:ObjectProperty
?
In current seedling-ontology.ttl
:
ldcOnt:genafl_apora a owl:Class ;
rdfs:label "General-Affiliation_Artifact-Political-Organization-Religious-Affiliation (APORA)" ;
rdfs:subClassOf aidaDomainCommon:RelationType .
For example:
ldc:E779987.00077 a aif:Entity ;
aif:system ldc:LDCModelGenerator .
ldc:E779987.00075 a aif:Entity ;
aif:system ldc:LDCModelGenerator .
ldc:R779987.00010 a rdf:Statement ;
rdf:object ldc:E779987.00075 , ldc:E779987.00071 ;
rdf:predicate ldcOnt:genafl_apora ;
rdf:subject ldc:E779987.00077 ;
Update interchange-ontology.ttl to include all properties used by AIF
> pip install -e .
Obtaining file:///Users/gabbard/projects/gaia/aida-tools/repos/AIDA-Interchange-Format
Complete output from command python setup.py egg_info:
running egg_info
creating gaia_interchange.egg-info
writing gaia_interchange.egg-info/PKG-INFO
writing dependency_links to gaia_interchange.egg-info/dependency_links.txt
writing requirements to gaia_interchange.egg-info/requires.txt
writing top-level names to gaia_interchange.egg-info/top_level.txt
writing manifest file 'gaia_interchange.egg-info/SOURCES.txt'
error: package directory 'tests' does not exist
In the latest InterchangeOntology (as of 2018-08-08) there is a problem with ClusterMembership: Adding this class without adding any property to link it to the ClusterMember class makes it impossible to link an instance to a SameAsCluster.
See also the code review for AIF-8: #55 :
A new class has been introduced, ClusterMembership. ClusterMembership instances are linked to Enitites/Events/SameAsClusters via the clusterMember property. The original ClusterMember class is still there. ClusterMember instances are linked to SameAsClusters through the cluster property. However, there is no way to link ClusterMembership instances to ClusterMembers. Is this intentional? If so, how do we express that an entity or event is a member of a cluster? If there is not a good reason to separate ClusterMembership from ClusterMember, than I suggest we just stick with ClusterMember and connect that to Enitites/Events/SameAsClusters via the clusterMember property.
At the same time the InterchangeOntology has a ClusterMember class that is never used in AIFUtils.kt or defined in AidaAnnotationOntology.kt. InterchangeOntology does have a clusterMember property that is being used, but the domain in InterchangeOntology is ClusterMembership.
There is a known bug in the surefire plugin 2.20.X where it is unable to fork a new process. See: https://issues.apache.org/jira/browse/SUREFIRE-1479
Fix by increasing plugin version.
Installing the Python package fails on Windows because the where
path passed to setuptools.find_packages()
ends in a slash:
> pip install .
Processing e:\shared\coding\isi\2019-aida\repos\aida-interchange-format
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\crazy\AppData\Local\Temp\pip-req-build-91ixkqom\setup.py", line 18, in <module>
packages=setuptools.find_packages(where='./python/', exclude=['tests']),
File "c:\users\crazy\appdata\local\programs\python\python37\lib\site-packages\setuptools\__init__.py", line 58, in find
convert_path(where),
File "c:\users\crazy\appdata\local\programs\python\python37\lib\distutils\util.py", line 112, in convert_path
raise ValueError("path '%s' cannot end with '/'" % pathname)
ValueError: path './python/' cannot end with '/'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\crazy\AppData\Local\Temp\pip-req-build-91ixkqom\
It looks like a problem with my Java install, but I get a similar error on an Arch Linux machine that goes away when switching to Java 8. I've also tried git clean -xdf .
and deleting ~/.m2
.
Doing mvn compile
:
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< com.ncc:aida-interchange >----------------------
[INFO] Building aida-interchange 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ aida-interchange ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 15 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ aida-interchange ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 6 source files to /Users/berquist/projects/aida/aida_interchange_format/repos/AIDA-Interchange-Format/target/classes
/Users/berquist/projects/aida/aida_interchange_format/repos/AIDA-Interchange-Format/src/main/java/com/ncc/aif/SeedlingOntologyMapper.java:8: error: cannot access HashSet
import java.util.HashSet;
^
bad class file: /modules/java.base/java/util/HashSet.class
class file has wrong version 55.0, should be 53.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
1 error
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.414 s
[INFO] Finished at: 2019-01-23T17:15:55-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project aida-interchange: Compilation failure -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The environment:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T14:41:47-04:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 11.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.2", arch: "x86_64", family: "mac"
the way the ValidateAIF
logger is set up is causing problems: it's being cast to a logback
logger which is causing runtime exceptions for non-logback implementations:
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.Log4jLogger cannot be cast to ch.qos.logback.classic.Logger
at com.ncc.aif.ValidateAIF.<clinit>(ValidateAIF.java:59)
(we use log4j but this would happen with any other)
the way i have typically seen slf4j loggers initialized is like this:
private static final Logger LOG = LoggerFactory.getLogger(Demo.class); // or whatever modifiers
this uses the slf4j backend but allows clients to plug whichever implementation they want at runtime - which is what slf4j is designed to do, to some extent, abstract away the implementation and provide a logging framework.
the way the current code is set up, the logger
sets its own level to info
to reduce verbosity (i'm guessing?) but this is perhaps better handled by adding configurations to make other noisy logging facilities quieter.
In the upcoming Java version of the AIF Mapper, ColdStart will not be supported, but the Kotlin source will remain in the source tree.
See Next Century's Jira Issue AIDA-468.
Example:
[ a <http://www.w3.org/ns/shacl#ValidationReport> ;
<http://www.w3.org/ns/shacl#conforms>
false ;
<http://www.w3.org/ns/shacl#result>
[ a <http://www.w3.org/ns/shacl#ValidationResult> ;
<http://www.w3.org/ns/shacl#focusNode>
<urn:www.rpi.edu/neuralModel/russian/assertions/ce76a9c4-3773-454c-bd89-c991282b939d> ;
<http://www.w3.org/ns/shacl#resultMessage>
"Object of type assertion must be an entity or event type" ;
<http://www.w3.org/ns/shacl#resultPath>
rdf:object ;
<http://www.w3.org/ns/shacl#resultSeverity>
<http://www.w3.org/ns/shacl#Violation> ;
<http://www.w3.org/ns/shacl#sourceConstraintComponent>
<http://www.w3.org/ns/shacl#XoneConstraintComponent> ;
<http://www.w3.org/ns/shacl#sourceShape>
_:b0 ;
<http://www.w3.org/ns/shacl#value>
ldcOnt:CONFLICT.ATTACK
] ;
ontology has ldcOnt:CONFLICT_ATTACK
I will be working on this on a local branch and then will create a pull request.
The AIF mapper needs to support the ontology developed by the Ontology Working Group. To facilitate supporting updates or new versions of the ontology, it may read its events and relation types directly from the ontology file instead of from code. This will be added to the upcoming Java version only; there won't be a Kotlin equivalent.
The Seedling Ontology Mapper will continue to use the existing file (SeedlingOntologyMapper.kt)
See Next Century's Jira issue AIDA-303 by the same name.
hi, it'd be really useful to get this deployed to an OSS repo so that it's not necessary to clone the repo and mvn install
it.
are there any procedural or legal concerns about doing this? if not, is this something we could take on?
The pull request #97 causes the ImagesToAIFTest.java test to fail. The line is:
require(baseUri.substring(1).contains(":")) {
"Base URI must contain a prefix followed by a colon separator" }
and the output of the test is:
16:48:10.305 [main] INFO mu.KLogging - Read header line as system URI www.isi.edu/testSystem
java.lang.IllegalArgumentException: Base URI must contain a prefix followed by a colon separator
at edu.isi.gaia.UuidIriGenerator.<init>(AIFUtils.kt:726)
at edu.isi.gaia.ImagesToAIF$Companion.createForSystemIri(imagesToAIF.kt:156)
I think that the problem is that the resources file that is being used in the test was not updated in accordance with the change in test.
owl:DataTypeProperty is doesn't exist; it is owl:DatatypeProperty. Ontology tools that are not case-sensitive do not throw an error, but case-sensitive ones do.
Richard recommended a number of changes in the ontology, to add properties, including alternateGraph, confidence, containsAssertion, etc.
Currently all or most reified statements are a rdf:Statement
. It would be easier to process the AIF if the different reifications were instances of subclasses of a rdf:Statement
. For example aida:RelationStatement
, aida:RoleStatement
.
Add an example of the new relations
Move the vector example to the end and clean up (give it a valid uri)
:Entity
, :Event
, and :Relation
from InterchangeOntology.AidaDomainOntologiesCommon:Filler
and `AidaDomainOntologiesCommon:NumericFiller.InterchangeOntology:hasName
.Requires changes to InterchangeOntology, aida_ontology.shacl, and AIFUtils.kt
If I do a mvn clean install
I get the following output:
[WARNING] Tests run: 20, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 17.197 s - in edu.isi.gaia.ExamplesAndValidationTest
[INFO] Running edu.isi.gaia.ImagesToAifTest
14:48:10.669 [main] INFO mu.KLogging - Read header line as system URI www.isi.edu/testSystem
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.031 s <<< FAILURE! - in edu.isi.gaia.ImagesToAifTest
[ERROR] testImagesToAif Time elapsed: 0.031 s <<< ERROR!
java.lang.VerifyError:
Uninitialized object exists on backward branch 456
Exception Details:
Location:
edu/isi/gaia/ImagesToAIF$Companion$ImageMention$Companion.parseLinesToMention(Ljava/util/List;)Ledu/isi/gaia/ImagesToAIF$Companion$ImageMention; @505: goto
Reason:
Error exists in the bytecode
Bytecode:
0x0000000: 2b12 6cb8 0018 2bc0 006e 4d2c b900 7201
0x0000010: 009a 0007 04a7 0004 033d 1c9a 0017 1274
0x0000020: 3a04 bb00 7659 1904 b600 7ab7 007d c000
0x0000030: 7fbf 2b03 b900 3102 00c0 002d 4d2c b900
0x0000040: 8301 0010 089f 0034 bb00 8559 bb00 8759
0x0000050: b700 8812 8ab6 008e 2cb6 0091 1293 b600
0x0000060: 8e12 95b6 008e 2cb9 0083 0100 b600 98b6
0x0000070: 0099 b700 9ac0 007f bfbb 009c 59bb 009e
0x0000080: 592c 06b9 0031 0200 c000 1c3a 043a 113a
0x0000090: 103a 0f3a 0e19 04b8 00a4 3612 190e 190f
0x00000a0: 1910 1911 1512 2c07 b900 3102 00c0 001c
0x00000b0: 3a04 3612 3a11 3a10 3a0f 3a0e 1904 b800
0x00000c0: a436 1319 0e19 0f19 1019 1115 1215 13b7
0x00000d0: 00a7 bb00 9e59 2c08 b900 3102 00c0 001c
0x00000e0: 3a04 3a12 3a11 3a10 3a0f 3a0e 1904 b800
0x00000f0: a436 1319 0e19 0f19 1019 1119 1215 132c
0x0000100: 1006 b900 3102 00c0 001c 3a04 3613 3a12
0x0000110: 3a11 3a10 3a0f 3a0e 1904 b800 a436 1419
0x0000120: 0e19 0f19 1019 1119 1215 1315 14b7 00a7
0x0000130: b700 aa4e bb00 0859 2c03 b900 3102 00c0
0x0000140: 001c 2c04 b900 3102 00c0 001c b800 b02c
0x0000150: 05b9 0031 0200 c000 1c2d 2c10 07b9 0031
0x0000160: 0200 c000 1c3a 043a 133a 123a 113a 103a
0x0000170: 0f3a 0e19 04b8 00b6 3914 190e 190f 1910
0x0000180: 1911 1912 1913 1814 2bc0 00b8 04b8 00bd
0x0000190: c000 b83a 04b2 00c3 3a05 3914 3a13 3a12
0x00001a0: 3a11 3a10 3a0f 3a0e 1904 3a06 bb00 c559
0x00001b0: 1904 100a b800 c9b7 00cc c000 6e3a 0719
0x00001c0: 06b9 00d0 0100 3a08 1908 b900 d501 0099
0x00001d0: 002d 1908 b900 d901 003a 0919 0719 09c0
0x00001e0: 002d 3a0a 3a16 1905 190a b600 df3a 1719
0x00001f0: 1619 17b9 00e2 0200 57a7 ffcf 1907 c000
0x0000200: 2d3a 1619 0e19 0f19 1019 1119 1219 1318
0x0000210: 1419 16c0 00b8 b800 e6b7 00e9 b0
Stackmap Table:
append_frame(@24,Object[#110])
same_locals_1_stack_item_frame(@25,Integer)
full_frame(@50,{Object[#2],Object[#45],Integer},{})
full_frame(@121,{Object[#2],Object[#45],Object[#45]},{})
full_frame(@456,{Object[#2],Object[#45],Object[#45],Object[#156],Object[#184],Object[#219],Object[#184],Object[#110],Object[#210],Top,Top,Top,Top,Top,Uninitialized[#308],Uninitialized[#308],Object[#28],Object[#172],Object[#28],Object[#156],Double},{})
same_frame(@508)at edu.isi.gaia.ImagesToAifTest.testImagesToAif(ImagesToAifTest.java:40)
[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] ImagesToAifTest.testImagesToAif:40 » Verify Uninitialized object exists on bac...
[INFO]
[ERROR] Tests run: 21, Failures: 0, Errors: 1, Skipped: 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51.568 s
[INFO] Finished at: 2018-08-15T14:48:17-04:00
[INFO] Final Memory: 63M/872M
[INFO] ------------------------------------------------------------------------
Boyan said:
4. Solution - Vectorized Representations Since face recognition isn’t actually done at a raw pixel-to-pixel comparison level, but at a level of some vector, neural layer, or other model representation level (and an analogue exists for embedding-based EDL), instead of pushing jpeg’s etc. from TA1 to TA2 through the TA1/TA2 interface, instead we push that vectorized representation through the interface. Then the gallery effectively resides in TA2 as attributes of individual PERSON KEs, but not in raw image form, but in (allowable) vectorized or neuralized representation. The owner of the representation (i.e., TA1) has to pass the representation-to-representation similarity function to TA2 to execute, because different TA1s may have their own private representations, and the TA2 teams aren’t responsible for producing media processing algorithms. If the vectorized representation for an entity in the KB is a composite of multiple instances of an image, TA1 provides a function for updating that representation (but without access to all the raw images, i.e., by incrementally building an aggregate representation, one instance vector at a time) to be invoked by TA2. Note that for Phase 1 (and possibly Phase 2), we will only be exercising complete AIDA configurations with instances of ONE TA1 at a time; in other words, even though we might have 5 instances of TA1 for efficiency, they will all be instances of the same TA1 "system", or at least from the same performer. In Phase 3, we'll worry about having TA1's from multiple performers play well together (and reuse a shared set of vector representations, or at least map them), and there were a couple of ideas for how to address that. Also note that subgraphs (or equivalent) of the TA2 KB (aka hypotheses) will be passed to TA1 to provide processing context. Those subgraphs will include unique KE's, identified by KB unique id's. So it is possible that as a result of hypothesis-based TA1 processing, some entities will be uniquely identifiable via KB unique ID. In that case, the TA1 to TA2 information transfer may include a KB ID for a postulated entity, to reduce work/ambiguity by TA2.
UNKONWN should be UNKNOWN.
class LDCTimeType(Enum):
ON = 1
BEFORE = 2
AFTER = 3
UNKONWN = 4
This affects the TTL output because the string value of the Enum is used.
It looks like the validator is returning an exit code of 0 even though there are validation errors.
> ./validateAIF validateAIF.params
(Lots of validation errors)
> echo $?
0
We recieved approval for public release. I am going to add the Distribution Statement to the README.
This is in reply to your request for clearance of the following document:
This document was cleared by DARPA on September 21, 2018. All copies should carry the Distribution Statement "A" (Approved for Public Release, Distribution Unlimited). If you have any questions, please contact the Public Release Center.
DARPA Public Release Center (PRC)
675 N. Randolph Street, Room 03-028
Arlington, VA 22203-1714
Main: (571) 218-4235
This could account for some or all of the size difference between shatter and single KB modes observed by @szeke and student
After run mvn install
, it will abort with Tests failures, showing the BUILD FAILURE
.
[ERROR] Failures:
[ERROR] ExamplesAndValidationTest$ValidExamples.createSeedlingEvent:278 expected: <true> but was: <false>
[INFO]
[ERROR] Tests run: 15, Failures: 1, Errors: 0, Skipped: 1
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T11:49:05-08:00)
Maven home: /usr/local/Cellar/maven/3.5.3/libexec
Java version: 10.0.1, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.5", arch: "x86_64", family: "mac"
[ERROR] Tests run: 14, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 3.38 s <<< FAILURE! - in edu.isi.gaia.ExamplesAndValidationTest
[ERROR] createSeedlingEvent Time elapsed: 0.643 s <<< FAILURE!
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at edu.isi.gaia.ExamplesAndValidationTest$ValidExamples.createSeedlingEvent(ExamplesAndValidationTest.java:278)
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] ExamplesAndValidationTest$ValidExamples.createSeedlingEvent:278 expected: <true> but was: <false>
[INFO]
[ERROR] Tests run: 15, Failures: 1, Errors: 0, Skipped: 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.028 s
[INFO] Finished at: 2018-06-21T13:35:53-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on project gaia-interchange-kotlin: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/eric/Git/ISI/AIDA-Interchange-Format/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on project gaia-interchange-kotlin: There are test failures.
Please refer to /Users/eric/Git/ISI/AIDA-Interchange-Format/target/surefire-reports for the individual test results.
Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.
Please refer to /Users/eric/Git/ISI/AIDA-Interchange-Format/target/surefire-reports for the individual test results.
Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
at org.apache.maven.plugin.surefire.SurefireHelper.throwException (SurefireHelper.java:240)
at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution (SurefireHelper.java:112)
at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary (SurefirePlugin.java:354)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked (AbstractSurefireMojo.java:1008)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute (AbstractSurefireMojo.java:854)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
With the latest build(6940c5a), using coldstart2AidaInterchange
and the same parameters except the mode, the size of output file varied greatly. For SHATTER mode, it outputs 151 turtle files, and ~4.3GB in total. And for FULL mode, it only outputs one file with ~56MB. Is that normal?
My input parameters for SHATTER mode:
inputKBFile: /path/to/eng.cs
baseURI: http://www.isi.edu/aida
systemURI: http://www.rpi.edu/tinkerbell
mode: SHATTER
ontology: rpi_seedling
outputAIFDirectory: /path/to/output
and part of parameters for FULL mode
mode: FULL
outputAIFFile: /path/to/output.nt
Xi Jin pointed out that there was a spelling error in InterchangeOntology:
:cluster rdf:type owl:ObjectProperty ;
rdfs:domain :ClusterMember ;
rdfs:domain :ClusterMemberShip ;
That should be ClusterMembership (lower case 's').
Use owl:imports to show what other ontologies the seedling and seedling-owl ontologies require (are based on).
To facilitate AIF maintenance (e.g., supporting the ontology developed by the Ontology working group), develop a Java version of the current Kotlin classes. It adds another language into the entire collection of languages that we have to support. Kotlin classes can still be used in cases where no further maintenance is planned (e.g., Seedling ontology, ColdStart).
See Next Century's Jira Issue AIDA-447.
In the recent changes to the ontology, the LDC prefix was added, though not needed for the ontology.
src/main/resources/edu/isi/gaia/seedling-ontology.ttl
@Prefix rdfs: http://www.w3.org/2000/01/rdf-schema# .
-@Prefix aidaDomainCommon: http://darpa.mil/ontologies/AidaDomainOntologiesCommon# .
+@Prefix ldc: http://darpa.mil/annotations/ldc# .
the v1.0.0 release depends on a snapshot of the following library:
<dependency>
<groupId>org.topbraid</groupId>
<artifactId>shacl</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
because of this, the SNAPSHOT code could change and as a result the release code can change. it would be ideal to use a released version so that the SNAPSHOT code cannot change in some form or fashion.
are the features provided by this SNAPSHOT necessary or can a stable dependency be plugged in?
Bring the java justification apis up to date with changes introduced by #104.
The Ontology generation process was adding CanHaveNumericValue to "Value", which does not exist in the Seedling annotations. Instead, the term is "NumericalValue". Add CanHaveNumericValue to that.
In the develop
branch, when setup.py
is used to install the aida_interchange
package, aida_interchange.rdf_ontologies
is not included in the package because there is no __init__.py
file in python/aida_interchange/rdf_ontologies/
.
The setup.py
tool in python/
uses setuptools.find_packages() to find any (sub)packages. Per the setuptools documentation:
find_packages()
walks the target directory, filtering by inclusion patterns, and finds Python packages (any directory). Packages are only recognized if they include an__init__.py
file.
Because there is no python/aida_interchange/rdf_ontologies/__init__.py
file, setup.py
will not include the aida_interchange.rdf_ontologies
package when installing aida_interchange
.
The file aida_interchange/aifutils.py
has an import statement that assumes that aida_interchange.rdf_ontologies
is installed:
from aida_interchange.rdf_ontologies import interchange_ontology
but if aida_interchange
is installed via setup.py
, the above import statement will fail with the exception:
ModuleNotFoundError: No module named 'aida_interchange.rdf_ontologies'
Create an empty python/aida_interchange/rdf_ontologies/__init__.py
file.
The SHACL file has:
aida:CompoundJustificationShape
a sh:NodeShape ;
sh:targetClass aida:CompoundJustification ;
# must have at least two contained justifications
sh:property [
sh:path aida:containedJustification ;
sh:xone (
[sh:class aida:TextJustification]
[sh:class aida:ImageJustification]
[sh:class aida:AudioJustification]
[sh:class aida:KeyFrameVideoJustification]
[sh:class aida:ShotVideoJustification] ) ;
sh:minCount 1 ] ;
# justification must provide confidence
sh:property aida:RequiredConfidencePropertyShape ;
# may provide an optional source system
sh:property aida:SystemPropertyShape .
So the aida:containedJustification
property, sh:minCount 1
, so the comment # must have at least two contained justifications
is incorrect (and I believe NIST sometimes uses CompoundJustifications
which are not in fact "compound" :-) )
It is handy to use as a prefix when users are writing their own SPARQL queries in code. A similar namespace constant is already present in AidaAnnotationOntology
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.