{"id":16222894,"url":"https://github.com/michael/ken-browser","last_synced_at":"2025-03-19T11:31:45.884Z","repository":{"id":66264134,"uuid":"4687534","full_name":"michael/ken-browser","owner":"michael","description":"Visual Knowledge Browser","archived":false,"fork":false,"pushed_at":"2015-10-01T07:14:43.000Z","size":6406,"stargazers_count":32,"open_issues_count":0,"forks_count":8,"subscribers_count":8,"default_branch":"gh-pages","last_synced_at":"2024-10-11T12:15:40.581Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://michael.github.com/ken","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michael.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-16T20:57:17.000Z","updated_at":"2023-06-03T16:37:18.000Z","dependencies_parsed_at":"2023-03-06T14:30:18.819Z","dependency_job_id":null,"html_url":"https://github.com/michael/ken-browser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael%2Fken-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael%2Fken-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael%2Fken-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael%2Fken-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michael","download_url":"https://codeload.github.com/michael/ken-browser/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221726984,"owners_count":16870713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T12:15:43.851Z","updated_at":"2024-10-27T20:00:12.693Z","avatar_url":"https://github.com/michael.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ken\n\nKen is a visual browsing interface for exploring resources of different kinds. Here's how it looks like when a collection of NYTimes articles is visualized.\n\n![](http://f.cl.ly/items/3u0z0Z021z1I000e2Z0j/Screen%20Shot%202013-02-11%20at%2010.33.49%20AM.png)\n\n## Integrate With Your Own Data\n\nKen has been built for arbitrary data-sets. So you should use it to display your own collection of things. It does not matter if it's a set of projects, a list of publications or a selection of products your company offers.\n\nBefore digging into the details, here's some folks that have alredy integrated their data:\n\n- [Casey A. Gollan](http://caseyagollan.com/public/ken/)\n- [Politpressing in Russia](http://politpressing.org/)\n\n### Check Out The Source Code\n\nFirst off, you are encouraged to create your own fork on Github, in order to maintain your customized application of Ken. Once you have done that, just clone the fresh repo.\n\n```bash\n$ git clone git@github.com:your_user/ken.git\n```\n    \n### Run Locally\n\nWhen developing locally, note that your browser may enforce strict permissions for reading files out of the local file system. So in order to run Ken on your computer, you must have a local web server. For example, you can run Python's built-in server:\n\n```bash\n$ cd ken\n$ python -m SimpleHTTPServer 8888 \u0026\n```\n    \n### Adjust The Data\n\nBy default Ken loads a static data-set, that can be found in `data/projects.json`. You can edit this file directly and make yourself comfortable with the data format.\n\nKen gets powered by a so called `Data.Collection` a simple data format, that can be exchanged as JSON. A data collection involves a `type` declaration and a sequence of `objects` that are instances of the specified type. However after you've made yourself familiar with the data format, it's time to create your own data file `data/my_projects`.\n\nYou can change the dataset that gets loaded by default by changing one line in index.html.\n\n```js\nwindow.app = new Application({ dataset: \"data/my_projects.json\"});\n```\n\n### Data Type\n\nIn order to use your own domain data, you need to justify the data type. A data type consists of a number of property declarations. Supposing your dataset contains keywords associated with each object, a property definition could look like this:\n\t\n```js\n...\n\"subjects\": {\n  \"name\": \"Keywords\",\n  \"type\": \"string\",\n  \"unique\": false,\n  \"meta\": {\n    \"facet\": true,\n    \"details\": true\n  }\n},\n...\n```\n\nProperty definitions are pretty straight forward, the key determines the internal property identifier. `name` is a human readable description of the property. `type` defines the allowed values for that property. It can be `string`, `number` or `boolean`. `unique` then specifies whether there can be one value `true` or multiple values `false` for that property. `facet` and `details` are specific to Ken. They define where a property should be exposed as a facet in the Ken interface, and if it should be shown in the details dialog.\n\n### Data Objects\n\nAccording to your type definition you can now populate the collection with concrete objects you wanna display. Here's an example of an object in our projects collection.\n\n```js\n...\n{\n  \"_id\": \"project-a\",\n  \"name\": \"Project A\",\n  \"keywords\": [\"3D Modelling\", \"Visualization\"],\n  \"locations\": [\"Linz\", \"Vienna\", \"London\"],\n  \"image\": \"http://example.com/image.png\",\n  \"abstract\": \"Project A is there to demonstrate how a visual knowledge browser can be populated with custom data\"\n}\n...\n``` \n    \n### Predefined Properties\n\nThere are a number of required properties that are used by the Ken interface. Those are:\n\n- `name` (required) - A human readable title of the object\n- `abstract` (optional) - A short description (shown in the details panel)\n- `website` (optional) - A URL pointing to an external webpage\n- `image` (option) - A image URL idaelly 1:1 aspect ratio. Shown in the plot and on the detail page.\n\n\n\u003c!--\n## Data Proxy\n\nYou probably have a data-service already. However, the data needs to be converted into the Data.Collection format, so Ken can read it. This is rather simple. We wrote such a proxy ourselves, in order to turn the output of the New York Times Most Popular API into a representation our browser understands. We also use the proxy to generate a bigger dataset (we need multiple requests against the NYTimes API) which we cache so initial loading is fast. Every hour we regenerate the dataset so users see the latest stories of the New York times.\n--\u003e\n\n## Adjust Stylesheets\n\nYou can adjust the style of your knowledge browser.\n\n- `stylesheets/style.css` - Contains the page layout\n- `stylesheets/ken.css` - Contains the styles for the visualization\n\n\n## Adjust Javascript\n\nFeel free to touch the Javascript code as well and adapt to your needs. If you think your contribution could be useful for the main project, please submit a pull request via GitHub.\n\n\n## Keep In Sync With The Original Repo\n\nMake sure you pull in changes from the original repo from time to time, so you can utilize the latest features and benefit from bugfixes.\n\n## Credits\n\nKen is a project by [Quasipartikel](http://quasipartikel.at), made possible by our friends at [Ravensbourne](http://www.rave.co.uk), who are sponsoring initial development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael%2Fken-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichael%2Fken-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael%2Fken-browser/lists"}