Inspiration

On the plane ride over to the hackathon, we were brainstorming ideas, and Zach came up with the concept to try and create diagrams to explain privacy policies.

What it does

MOP'd can transform a website's privacy policy page into a visualization, showing the different parties and what actions they take on your data.

How we built it

We used NLTK to analyze the text of Facebook's Privacy Policy. We built a prototyping tool for ourselves to mark up and annotate the data, to look for patterns. Once we had settled on a pattern, we built a parsing grammer within NLTK that pulled elements of that pattern out of the document and rendered it in a PlantUML diagram.

Challenges we ran into

Getting the privacy policy into a machine readable format took some thinking. We couldn't simply use plain text, since we lost some contextual information like the page headings, but using HTML would have been too complicated. We eventually settled on transforming the document into YAML following a few simple rules from the page hierarchy.

Accomplishments that we're proud of

When we first rendered the document where we could see all of the elements, we saw our vision come to life, and were both surprised by how close it ended up being to our original idea!

What we learned

We learned about using NLTK to do pattern matching through a grammar structure, which will help us build better NLP models in the future.

What's next for MOP'd (Mapping Out Privacy, Dynamically)

We believe this technology can be used to analyze all sorts of legal documents. Legal documents are interesting since they typically use a subset of restricted language, and often follow strict formal rules when they are written, making them more syntactical. We believe this is a largely unexplored area with a lot of potential.

On the software side, we're excited to explore potential improvements in our privacy policy scraping process, grammar design, and training the NLTK classifier to have better part-of-speech tagging.

Built With

Share this project:

Updates

Submission history