ringgaard / sling

SLING - A natural language frame semantics parser
Apache License 2.0
154 stars 11 forks source link

Am I able to install sling on a Mac with M1 chip? #18

Open megamattc opened 1 year ago

megamattc commented 1 year ago

Hello,

I am trying to install and build the source code for sling on a Mac with M1 chip. This appears to be problematic for installation, as not only do I get a 'sudo: apt-get: command not found' error when running setup.sh, but also the buildall.sh script fails. Trying to install the Python features via

sudo -H pip3 install https://ringgaard.com/data/dist/sling-3.0.0-py3-none-linux_x86_64.whl

also fails.

Is there any alternative for me?

ringgaard commented 1 year ago

I do remember having SLING up and running on Mac OSX with very few patches, and some of the patches are still in the code. There is a version of Bazel for OSX, but you will have to build the code from source.

The semantic parser depends on Myelin, which cannot easily be ported to M1, but the rest of the code should be fairly standard C++ code. There are a few places that assumes ELF binaries, but these might not be essential to you.

What parts of SLING are you planning on using?

megamattc commented 1 year ago

I wanted to build a semantic frame database based on another language (Akkadian) and then use it to do frame parsing on my own Akkadian corpus. I assumed one could use sling for any language, not just English.

Michael Ringgaard @.***> 于2023年3月28日周二 09:55写道:

I do remember having SLING up and running on Mac OSX with very few patches, and some of the patches https://github.com/ringgaard/sling/blob/master/sling/file/posix.cc#L184 are still in the code. There is a version of Bazel for OSX, but you will have to build the code from source.

The semantic parser depends on Myelin, which cannot easily be ported to M1, but the rest of the code should be fairly standard C++ code. There are a few places that assumes ELF binaries, but these might not be essential to you.

What parts of SLING are you planning on using?

— Reply to this email directly, view it on GitHub https://github.com/ringgaard/sling/issues/18#issuecomment-1486314019, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALEYQYAPT33DTDTZ44HQEFLW6KDNXANCNFSM6AAAAAAWJ3DQ4A . You are receiving this because you authored the thread.Message ID: @.***>

ringgaard commented 1 year ago

You will need an annotated corpus in Akkadian to train a parser.

megamattc commented 1 year ago

Indeed, which I am prepared to do (hopefully in Inception) if it can be used to train the parser.

Michael Ringgaard @.***> 于2023年3月29日周三 00:12写道:

You will need an annotated corpus in Akkadian to train a parser.

— Reply to this email directly, view it on GitHub https://github.com/ringgaard/sling/issues/18#issuecomment-1487598565, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALEYQYE6T2PTVPJ5KQJMPADW6NH5FANCNFSM6AAAAAAWJ3DQ4A . You are receiving this because you authored the thread.Message ID: @.***>

PierceLBrooks commented 1 year ago

The base module appears to forcibly assume the availability of ELF architecture headers ( https://github.com/ringgaard/sling/blob/master/sling/base/symbolize.h#L20 )

ringgaard commented 1 year ago

The crash dump module would need to be disabled/ported on Mac and Windows. There are a few other places that would need to be fixed as well. The data file embedding code used for internal file systems as well as a number of places in Myelin.

PierceLBrooks commented 1 year ago

@ringgaard , where is this data file embedding code located at inside the repository? Also, for Myelin, do you mean an overall translation of the x86 assembly generation logic to ARM would be necessary?

ringgaard commented 1 year ago

@PierceLBrooks: SLING binaries can contain embedded data, which is typically used for internal file systems. These are used as resources for the web services, i.e. HTML, CSS, and JS files. These are specified using embed_data targets in the BUILD files, e.g.sling/nlp/kb/BUILD.

I don't think it is realistic to port Myelin to ARM, but a lot of functionality in SLING does not depend on Myelin. However, this semantic parser uses Myelin.

If there is enough interest in a MacOS version, I would be happy to try to make an OSX version of the SLING Python library. This version will have reduced functionality compared to the Linux version , but it might still be useful for some applications. I don't have access to an ARM-based Mac, but I can try to make an x64-based OSX version.