{"action":"created","comment":{"url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/comments/235882832","pull_request_review_id":177852676,"id":235882832,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNTg4MjgzMg==","diff_hunk":"@@ -70,6 +403,97 @@ object GravsearchUtilV2 {\n             // SPARQL variable representing the objects of a standoff node of a (text) value object\n             val standoffValueVar: QueryVariable = QueryVariable(\"standoffValue\")\n         }\n+\n+        /**\n+          * Creates a CONSTRUCT query for the given resource and value object IRIs.\n+          *\n+          * @param resourceIris    the IRIs of the resources to be queried.\n+          * @param valueObjectIris the IRIs of the value objects to be queried.\n+          * @return a [[ConstructQuery]].\n+          */\n+        def createMainQuery(resourceIris: Set[IRI], valueObjectIris: Set[IRI]): ConstructQuery = {\n+\n+            import FullTextSearchConstants._\n+\n+            // WHERE patterns for the resources: check that the resource are a knora-base:Resource and that it is not marked as deleted\n+            val wherePatternsForResources = Seq(\n+                ValuesPattern(resourceVar, resourceIris.map(iri => IriRef(iri.toSmartIri))), // a ValuePattern that binds the resource IRIs to the resource variable\n+                StatementPattern.makeInferred(subj = resourceVar, pred = IriRef(OntologyConstants.Rdf.Type.toSmartIri), obj = IriRef(OntologyConstants.KnoraBase.Resource.toSmartIri)),\n+                StatementPattern.makeExplicit(subj = resourceVar, pred = IriRef(OntologyConstants.KnoraBase.IsDeleted.toSmartIri), obj = XsdLiteral(value = \"false\", datatype = OntologyConstants.Xsd.Boolean.toSmartIri)),\n+                StatementPattern.makeExplicit(subj = resourceVar, pred = resourcePropVar, obj = resourceObjectVar)\n+            )\n+\n+            //  mark resources as the main resource and a knora-base:Resource in CONSTRUCT clause and return direct assertions about resources\n+            val constructPatternsForResources = Seq(\n+                StatementPattern(subj = resourceVar, pred = IriRef(OntologyConstants.KnoraBase.IsMainResource.toSmartIri), obj = XsdLiteral(value = \"true\", datatype = OntologyConstants.Xsd.Boolean.toSmartIri)),\n+                StatementPattern(subj = resourceVar, pred = IriRef(OntologyConstants.Rdf.Type.toSmartIri), obj = IriRef(OntologyConstants.KnoraBase.Resource.toSmartIri)),\n+                StatementPattern(subj = resourceVar, pred = resourcePropVar, obj = resourceObjectVar)\n+            )\n+\n+            if (valueObjectIris.nonEmpty) {\n+                // value objects are to be queried\n+\n+                // WHERE patterns for statements about the resources' values\n+                val wherePatternsForValueObjects = Seq(\n+                    ValuesPattern(resourceValueObject, valueObjectIris.map(iri => IriRef(iri.toSmartIri))),\n+                    StatementPattern.makeInferred(subj = resourceVar, pred = IriRef(OntologyConstants.KnoraBase.HasValue.toSmartIri), obj = resourceValueObject),\n+                    StatementPattern.makeExplicit(subj = resourceVar, pred = resourceValueProp, obj = resourceValueObject),\n+                    StatementPattern.makeExplicit(subj = resourceValueObject, pred = IriRef(OntologyConstants.KnoraBase.IsDeleted.toSmartIri), obj = XsdLiteral(value = \"false\", datatype = OntologyConstants.Xsd.Boolean.toSmartIri)),\n+                    StatementPattern.makeExplicit(subj = resourceValueObject, pred = resourceValueObjectProp, obj = resourceValueObjectObj)\n+                )\n+\n+                // return assertions about value objects\n+                val constructPatternsForValueObjects = Seq(\n+                    StatementPattern(subj = resourceVar, pred = IriRef(OntologyConstants.KnoraBase.HasValue.toSmartIri), obj = resourceValueObject),\n+                    StatementPattern(subj = resourceVar, pred = resourceValueProp, obj = resourceValueObject),\n+                    StatementPattern(subj = resourceValueObject, pred = resourceValueObjectProp, obj = resourceValueObjectObj)\n+                )\n+\n+                // WHERE patterns for standoff belonging to value objects (if any)\n+                val wherePatternsForStandoff = Seq(\n+                    ValuesPattern(resourceValueObject, valueObjectIris.map(iri => IriRef(iri.toSmartIri))),\n+                    StatementPattern.makeExplicit(subj = resourceValueObject, pred = IriRef(OntologyConstants.KnoraBase.ValueHasStandoff.toSmartIri), obj = standoffNodeVar),\n+                    StatementPattern.makeExplicit(subj = standoffNodeVar, pred = standoffPropVar, obj = standoffValueVar)\n+                )\n+\n+                // return standoff\n+                val constructPatternsForStandoff = Seq(\n+                    StatementPattern(subj = resourceValueObject, pred = IriRef(OntologyConstants.KnoraBase.ValueHasStandoff.toSmartIri), obj = standoffNodeVar),\n+                    StatementPattern(subj = standoffNodeVar, pred = standoffPropVar, obj = standoffValueVar)\n+                )\n+\n+                ConstructQuery(\n+                    constructClause = ConstructClause(\n+                        statements = constructPatternsForResources ++ constructPatternsForValueObjects ++ constructPatternsForStandoff\n+                    ),\n+                    whereClause = WhereClause(\n+                        Seq(\n+                            UnionPattern(\n+                                Seq(wherePatternsForResources, wherePatternsForValueObjects, wherePatternsForStandoff)\n+                            )\n+                        )\n+                    )\n+                )\n+\n+            } else {\n+                // no value objects are to be queried\n+\n+                ConstructQuery(\n+                    constructClause = ConstructClause(\n+                        statements = constructPatternsForResources\n+                    ),\n+                    whereClause = WhereClause(\n+                        Seq(\n+                            UnionPattern(\n+                                Seq(wherePatternsForResources)\n+                            )\n+                        )\n+                    )\n+                )\n+            }\n+\n+        }\n+\n     }\n \n     object Gravsearch {","path":"webapi/src/main/scala/org/knora/webapi/util/search/gravsearch/GravsearchUtilV2.scala","position":448,"original_position":448,"commit_id":"adca16838221e0ca842d8a96433b1f2891b6bed9","original_commit_id":"adca16838221e0ca842d8a96433b1f2891b6bed9","user":{"login":"tobiasschweizer","id":6000023,"node_id":"MDQ6VXNlcjYwMDAwMjM=","avatar_url":"https://avatars3.githubusercontent.com/u/6000023?v=4","gravatar_id":"","url":"https://api.github.com/users/tobiasschweizer","html_url":"https://github.com/tobiasschweizer","followers_url":"https://api.github.com/users/tobiasschweizer/followers","following_url":"https://api.github.com/users/tobiasschweizer/following{/other_user}","gists_url":"https://api.github.com/users/tobiasschweizer/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasschweizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasschweizer/subscriptions","organizations_url":"https://api.github.com/users/tobiasschweizer/orgs","repos_url":"https://api.github.com/users/tobiasschweizer/repos","events_url":"https://api.github.com/users/tobiasschweizer/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasschweizer/received_events","type":"User","site_admin":false},"body":"There is definitely a part that handles Sparql conversions (mainly used by the transformation classes).\r\n\r\nAnd there are parts used to process query results. I guess we could split them into separate files, yes. ","created_at":"2018-11-23T09:31:20Z","updated_at":"2018-11-23T09:31:21Z","html_url":"https://github.com/dhlab-basel/Knora/pull/1070#discussion_r235882832","pull_request_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/comments/235882832"},"html":{"href":"https://github.com/dhlab-basel/Knora/pull/1070#discussion_r235882832"},"pull_request":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070"}},"in_reply_to_id":235876919},"pull_request":{"url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070","id":232676619,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyNjc2NjE5","html_url":"https://github.com/dhlab-basel/Knora/pull/1070","diff_url":"https://github.com/dhlab-basel/Knora/pull/1070.diff","patch_url":"https://github.com/dhlab-basel/Knora/pull/1070.patch","issue_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/1070","number":1070,"state":"open","locked":false,"title":"Move methods and classes from SearchResponderV2 to GravsearchUtilV2 ","user":{"login":"tobiasschweizer","id":6000023,"node_id":"MDQ6VXNlcjYwMDAwMjM=","avatar_url":"https://avatars3.githubusercontent.com/u/6000023?v=4","gravatar_id":"","url":"https://api.github.com/users/tobiasschweizer","html_url":"https://github.com/tobiasschweizer","followers_url":"https://api.github.com/users/tobiasschweizer/followers","following_url":"https://api.github.com/users/tobiasschweizer/following{/other_user}","gists_url":"https://api.github.com/users/tobiasschweizer/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasschweizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasschweizer/subscriptions","organizations_url":"https://api.github.com/users/tobiasschweizer/orgs","repos_url":"https://api.github.com/users/tobiasschweizer/repos","events_url":"https://api.github.com/users/tobiasschweizer/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasschweizer/received_events","type":"User","site_admin":false},"body":"Moves transformation and helper methods from `SearchResponder` to `GravsearchUtilV2`. \r\n\r\ncloses #926 \r\ncloses #1014","created_at":"2018-11-21T14:08:53Z","updated_at":"2018-11-23T09:31:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"16d5cd1db10e836357d59b80be55d79d805a29bd","assignee":{"login":"tobiasschweizer","id":6000023,"node_id":"MDQ6VXNlcjYwMDAwMjM=","avatar_url":"https://avatars3.githubusercontent.com/u/6000023?v=4","gravatar_id":"","url":"https://api.github.com/users/tobiasschweizer","html_url":"https://github.com/tobiasschweizer","followers_url":"https://api.github.com/users/tobiasschweizer/followers","following_url":"https://api.github.com/users/tobiasschweizer/following{/other_user}","gists_url":"https://api.github.com/users/tobiasschweizer/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasschweizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasschweizer/subscriptions","organizations_url":"https://api.github.com/users/tobiasschweizer/orgs","repos_url":"https://api.github.com/users/tobiasschweizer/repos","events_url":"https://api.github.com/users/tobiasschweizer/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasschweizer/received_events","type":"User","site_admin":false},"assignees":[{"login":"tobiasschweizer","id":6000023,"node_id":"MDQ6VXNlcjYwMDAwMjM=","avatar_url":"https://avatars3.githubusercontent.com/u/6000023?v=4","gravatar_id":"","url":"https://api.github.com/users/tobiasschweizer","html_url":"https://github.com/tobiasschweizer","followers_url":"https://api.github.com/users/tobiasschweizer/followers","following_url":"https://api.github.com/users/tobiasschweizer/following{/other_user}","gists_url":"https://api.github.com/users/tobiasschweizer/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasschweizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasschweizer/subscriptions","organizations_url":"https://api.github.com/users/tobiasschweizer/orgs","repos_url":"https://api.github.com/users/tobiasschweizer/repos","events_url":"https://api.github.com/users/tobiasschweizer/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasschweizer/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":742124427,"node_id":"MDU6TGFiZWw3NDIxMjQ0Mjc=","url":"https://api.github.com/repos/dhlab-basel/Knora/labels/API%20v2","name":"API v2","color":"403491","default":false},{"id":294389789,"node_id":"MDU6TGFiZWwyOTQzODk3ODk=","url":"https://api.github.com/repos/dhlab-basel/Knora/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070/commits","review_comments_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070/comments","review_comment_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/1070/comments","statuses_url":"https://api.github.com/repos/dhlab-basel/Knora/statuses/adca16838221e0ca842d8a96433b1f2891b6bed9","head":{"label":"dhlab-basel:wip/gravsearch-refactoring","ref":"wip/gravsearch-refactoring","sha":"adca16838221e0ca842d8a96433b1f2891b6bed9","user":{"login":"dhlab-basel","id":16879914,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2ODc5OTE0","avatar_url":"https://avatars0.githubusercontent.com/u/16879914?v=4","gravatar_id":"","url":"https://api.github.com/users/dhlab-basel","html_url":"https://github.com/dhlab-basel","followers_url":"https://api.github.com/users/dhlab-basel/followers","following_url":"https://api.github.com/users/dhlab-basel/following{/other_user}","gists_url":"https://api.github.com/users/dhlab-basel/gists{/gist_id}","starred_url":"https://api.github.com/users/dhlab-basel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhlab-basel/subscriptions","organizations_url":"https://api.github.com/users/dhlab-basel/orgs","repos_url":"https://api.github.com/users/dhlab-basel/repos","events_url":"https://api.github.com/users/dhlab-basel/events{/privacy}","received_events_url":"https://api.github.com/users/dhlab-basel/received_events","type":"Organization","site_admin":false},"repo":{"id":47264649,"node_id":"MDEwOlJlcG9zaXRvcnk0NzI2NDY0OQ==","name":"Knora","full_name":"dhlab-basel/Knora","private":false,"owner":{"login":"dhlab-basel","id":16879914,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2ODc5OTE0","avatar_url":"https://avatars0.githubusercontent.com/u/16879914?v=4","gravatar_id":"","url":"https://api.github.com/users/dhlab-basel","html_url":"https://github.com/dhlab-basel","followers_url":"https://api.github.com/users/dhlab-basel/followers","following_url":"https://api.github.com/users/dhlab-basel/following{/other_user}","gists_url":"https://api.github.com/users/dhlab-basel/gists{/gist_id}","starred_url":"https://api.github.com/users/dhlab-basel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhlab-basel/subscriptions","organizations_url":"https://api.github.com/users/dhlab-basel/orgs","repos_url":"https://api.github.com/users/dhlab-basel/repos","events_url":"https://api.github.com/users/dhlab-basel/events{/privacy}","received_events_url":"https://api.github.com/users/dhlab-basel/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dhlab-basel/Knora","description":"Knowledge Organization, Representation, and Annotation","fork":false,"url":"https://api.github.com/repos/dhlab-basel/Knora","forks_url":"https://api.github.com/repos/dhlab-basel/Knora/forks","keys_url":"https://api.github.com/repos/dhlab-basel/Knora/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dhlab-basel/Knora/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dhlab-basel/Knora/teams","hooks_url":"https://api.github.com/repos/dhlab-basel/Knora/hooks","issue_events_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/events{/number}","events_url":"https://api.github.com/repos/dhlab-basel/Knora/events","assignees_url":"https://api.github.com/repos/dhlab-basel/Knora/assignees{/user}","branches_url":"https://api.github.com/repos/dhlab-basel/Knora/branches{/branch}","tags_url":"https://api.github.com/repos/dhlab-basel/Knora/tags","blobs_url":"https://api.github.com/repos/dhlab-basel/Knora/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dhlab-basel/Knora/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dhlab-basel/Knora/git/refs{/sha}","trees_url":"https://api.github.com/repos/dhlab-basel/Knora/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dhlab-basel/Knora/statuses/{sha}","languages_url":"https://api.github.com/repos/dhlab-basel/Knora/languages","stargazers_url":"https://api.github.com/repos/dhlab-basel/Knora/stargazers","contributors_url":"https://api.github.com/repos/dhlab-basel/Knora/contributors","subscribers_url":"https://api.github.com/repos/dhlab-basel/Knora/subscribers","subscription_url":"https://api.github.com/repos/dhlab-basel/Knora/subscription","commits_url":"https://api.github.com/repos/dhlab-basel/Knora/commits{/sha}","git_commits_url":"https://api.github.com/repos/dhlab-basel/Knora/git/commits{/sha}","comments_url":"https://api.github.com/repos/dhlab-basel/Knora/comments{/number}","issue_comment_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/comments{/number}","contents_url":"https://api.github.com/repos/dhlab-basel/Knora/contents/{+path}","compare_url":"https://api.github.com/repos/dhlab-basel/Knora/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dhlab-basel/Knora/merges","archive_url":"https://api.github.com/repos/dhlab-basel/Knora/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dhlab-basel/Knora/downloads","issues_url":"https://api.github.com/repos/dhlab-basel/Knora/issues{/number}","pulls_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls{/number}","milestones_url":"https://api.github.com/repos/dhlab-basel/Knora/milestones{/number}","notifications_url":"https://api.github.com/repos/dhlab-basel/Knora/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dhlab-basel/Knora/labels{/name}","releases_url":"https://api.github.com/repos/dhlab-basel/Knora/releases{/id}","deployments_url":"https://api.github.com/repos/dhlab-basel/Knora/deployments","created_at":"2015-12-02T14:00:26Z","updated_at":"2018-11-22T16:32:08Z","pushed_at":"2018-11-23T09:00:32Z","git_url":"git://github.com/dhlab-basel/Knora.git","ssh_url":"git@github.com:dhlab-basel/Knora.git","clone_url":"https://github.com/dhlab-basel/Knora.git","svn_url":"https://github.com/dhlab-basel/Knora","homepage":"http://knora.org","size":416880,"stargazers_count":31,"watchers_count":31,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":260,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":11,"open_issues":260,"watchers":31,"default_branch":"develop"}},"base":{"label":"dhlab-basel:develop","ref":"develop","sha":"218e757e68afaac4819927840fa4ceb715d984a9","user":{"login":"dhlab-basel","id":16879914,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2ODc5OTE0","avatar_url":"https://avatars0.githubusercontent.com/u/16879914?v=4","gravatar_id":"","url":"https://api.github.com/users/dhlab-basel","html_url":"https://github.com/dhlab-basel","followers_url":"https://api.github.com/users/dhlab-basel/followers","following_url":"https://api.github.com/users/dhlab-basel/following{/other_user}","gists_url":"https://api.github.com/users/dhlab-basel/gists{/gist_id}","starred_url":"https://api.github.com/users/dhlab-basel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhlab-basel/subscriptions","organizations_url":"https://api.github.com/users/dhlab-basel/orgs","repos_url":"https://api.github.com/users/dhlab-basel/repos","events_url":"https://api.github.com/users/dhlab-basel/events{/privacy}","received_events_url":"https://api.github.com/users/dhlab-basel/received_events","type":"Organization","site_admin":false},"repo":{"id":47264649,"node_id":"MDEwOlJlcG9zaXRvcnk0NzI2NDY0OQ==","name":"Knora","full_name":"dhlab-basel/Knora","private":false,"owner":{"login":"dhlab-basel","id":16879914,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2ODc5OTE0","avatar_url":"https://avatars0.githubusercontent.com/u/16879914?v=4","gravatar_id":"","url":"https://api.github.com/users/dhlab-basel","html_url":"https://github.com/dhlab-basel","followers_url":"https://api.github.com/users/dhlab-basel/followers","following_url":"https://api.github.com/users/dhlab-basel/following{/other_user}","gists_url":"https://api.github.com/users/dhlab-basel/gists{/gist_id}","starred_url":"https://api.github.com/users/dhlab-basel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhlab-basel/subscriptions","organizations_url":"https://api.github.com/users/dhlab-basel/orgs","repos_url":"https://api.github.com/users/dhlab-basel/repos","events_url":"https://api.github.com/users/dhlab-basel/events{/privacy}","received_events_url":"https://api.github.com/users/dhlab-basel/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dhlab-basel/Knora","description":"Knowledge Organization, Representation, and Annotation","fork":false,"url":"https://api.github.com/repos/dhlab-basel/Knora","forks_url":"https://api.github.com/repos/dhlab-basel/Knora/forks","keys_url":"https://api.github.com/repos/dhlab-basel/Knora/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dhlab-basel/Knora/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dhlab-basel/Knora/teams","hooks_url":"https://api.github.com/repos/dhlab-basel/Knora/hooks","issue_events_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/events{/number}","events_url":"https://api.github.com/repos/dhlab-basel/Knora/events","assignees_url":"https://api.github.com/repos/dhlab-basel/Knora/assignees{/user}","branches_url":"https://api.github.com/repos/dhlab-basel/Knora/branches{/branch}","tags_url":"https://api.github.com/repos/dhlab-basel/Knora/tags","blobs_url":"https://api.github.com/repos/dhlab-basel/Knora/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dhlab-basel/Knora/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dhlab-basel/Knora/git/refs{/sha}","trees_url":"https://api.github.com/repos/dhlab-basel/Knora/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dhlab-basel/Knora/statuses/{sha}","languages_url":"https://api.github.com/repos/dhlab-basel/Knora/languages","stargazers_url":"https://api.github.com/repos/dhlab-basel/Knora/stargazers","contributors_url":"https://api.github.com/repos/dhlab-basel/Knora/contributors","subscribers_url":"https://api.github.com/repos/dhlab-basel/Knora/subscribers","subscription_url":"https://api.github.com/repos/dhlab-basel/Knora/subscription","commits_url":"https://api.github.com/repos/dhlab-basel/Knora/commits{/sha}","git_commits_url":"https://api.github.com/repos/dhlab-basel/Knora/git/commits{/sha}","comments_url":"https://api.github.com/repos/dhlab-basel/Knora/comments{/number}","issue_comment_url":"https://api.github.com/repos/dhlab-basel/Knora/issues/comments{/number}","contents_url":"https://api.github.com/repos/dhlab-basel/Knora/contents/{+path}","compare_url":"https://api.github.com/repos/dhlab-basel/Knora/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dhlab-basel/Knora/merges","archive_url":"https://api.github.com/repos/dhlab-basel/Knora/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dhlab-basel/Knora/downloads","issues_url":"https://api.github.com/repos/dhlab-basel/Knora/issues{/number}","pulls_url":"https://api.github.com/repos/dhlab-basel/Knora/pulls{/number}","milestones_url":"https://api.github.com/repos/dhlab-basel/Knora/milestones{/number}","notifications_url":"https://api.github.com/repos/dhlab-basel/Knora/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dhlab-basel/Knora/labels{/name}","releases_url":"https://api.github.com/repos/dhlab-basel/Knora/releases{/id}","deployments_url":"https://api.github.com/repos/dhlab-basel/Knora/deployments","created_at":"2015-12-02T14:00:26Z","updated_at":"2018-11-22T16:32:08Z","pushed_at":"2018-11-23T09:00:32Z","git_url":"git://github.com/dhlab-basel/Knora.git","ssh_url":"git@github.com:dhlab-basel/Knora.git","clone_url":"https://github.com/dhlab-basel/Knora.git","svn_url":"https://github.com/dhlab-basel/Knora","homepage":"http://knora.org","size":416880,"stargazers_count":31,"watchers_count":31,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":260,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":11,"open_issues":260,"watchers":31,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070"},"html":{"href":"https://github.com/dhlab-basel/Knora/pull/1070"},"issue":{"href":"https://api.github.com/repos/dhlab-basel/Knora/issues/1070"},"comments":{"href":"https://api.github.com/repos/dhlab-basel/Knora/issues/1070/comments"},"review_comments":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070/comments"},"review_comment":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dhlab-basel/Knora/pulls/1070/commits"},"statuses":{"href":"https://api.github.com/repos/dhlab-basel/Knora/statuses/adca16838221e0ca842d8a96433b1f2891b6bed9"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"tobiasschweizer"}}