GithubHelp home page GithubHelp logo

hycdzjs / s3c Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hpcclab/s3c

0.0 0.0 0.0 128.95 MB

A secure semantic enterprise search tool for unstructured datasets stored in the Cloud.

Java 88.81% CSS 2.91% PHP 7.15% Shell 0.12% Hack 1.01%

s3c's Introduction

Secure Semantic Search in the Cloud (S3C)

Introduction

This is an open-source program that enables semantic enterprise search for unstructured datasets stored in the cloud. If you are using this tool in your research projects, please cite the following paper:

@inproceedings{woodworth2016s3c,
  title={S3C: An architecture for space-efficient semantic search over encrypted data in the cloud},
  author={Woodworth, Jason and Salehi, Mohsen Amini and Raghavan, Vijay},
  booktitle={Proceedings of the 4th IEEE International Conference on Big Data},
  series={Big Data'16},
  pages={3722--3731},
  year={2016},
  month={December}
}

The paper is also available in the following address: http://hpcclab.org/paperPdf/bigdata16/bigdata16.pdf

Architecture

How to Install and Execute the Project

Below, you can find the steps to execute the program:

  1. Clone the repository: git clone https://github.com/hpcclab/S3C.git
  2. Provide full access to the project folder: chmod a+x "/path/to/the/repository/folder/and/its contens. Example: chmod a+x /home/[PATHTOFOLDER]/S3C/*
  3. Execute script ./exec.sh to create folder + unzip demo dataset.
  4. Check 'cloud' folder is created in the parent folder. That means script runs successfully.
  5. Open Eclipse or other Java IDE
  6. Import two project: a. Open Project -> Path to S3C -> SemanticSearchClient b. Open Project -> Path to S3C -> SemanticSearchCloud

6.1. If you see an error in the client code, you need to add the "jsoup" jar file. For that purpose, in the project, find "lib" directory, right-click on jsoup-1.8.2.jar in that directory and click on "Build path" and choose "Add to Build Path"

  1. Run cloud project -> (Main class: SemanticSearchCloud.java)

  2. Run client project -> (Main class: SemanticSearchClient.java)

  3. a. Type -u in client console. b. Provide the upload path. Type input/demo_dataset. Our demo dataset is ready to be uploaded.

  4. After uploading, stop client execution. At this time, server has already built index and docSize.

  5. Re-run client project. Type -s to search over the index.

  6. From the result, keep a note of the file (s) that you want to decrypt.

  7. Go to Semantic Search Client -> uploads folder. Copy those files into semantic Search Client -> data-> input_encrypted folder

  8. Re-run Client project. Choose -d to decrypt resulted document. Insert file_name.txt

  9. After getting successful message, go to semantic Search Client -> data-> output_decrypted folder. Open the decrypted file to read the content!!

How to Contribute

We welcome new features, extension, or enhancements of S3C.

We are, in particular, looking for new collaborations, taking this framework further. As extension of S3C, we have developed S3BD that is similar to S3C but can perform search over encrypted Big Data. In addition to this, we are also researching to extend the capabilities of S3C such as search query expansion, intelligent pruning, clustering, and so on. Please drop us an email if you are interested.

Contacts

s3c's People

Contributors

zobaed11 avatar haihoang202 avatar

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.