From AVH at zing.net Sun Dec 2 02:03:28 2007 From: AVH at zing.net (Arthur van Hoff) Date: Sat, 1 Dec 2007 18:03:28 -0800 Subject: [Developers] type checking? Message-ID: Hi, When adding a genre to an podcast I accidentally picked National Public Radio from the popup list. The expected type for the was /user/cotton/default_domain/broadcast_genre, and NPR was not of that type. Why does the site allow me to pick a topics that is not of the correct type? Can't it restrict the list to just the valid type for that property? Now the NPR topic suddenly had an additional and wrong type. Why can any object be so easily be coerced into an incompatible type? That seems wrong/dangerous to me. I then proceeded to remove the bad type from NPR. That worked. However, my podcast still has a genre called NPR, and it is of the wrong type! Does freebase not force objects to be of the correct type? How can a podcast have a genre that is not of the correct type? It would seem to me that freebase should enforce type correctness. I was using the sandbox query: { "query" : [ { "/user/cotton/default_domain/broadcaster/broadcast_genres" : [ { "name" : null, "type" : [] } ], "id" : null, "name" : "Good Morning America" } ] } The result: { "q1": { "code": "/api/status/ok", "result": [ { "/user/cotton/default_domain/broadcaster/broadcast_genres": [ { "type": [ "/common/topic", "/business/employer", "/business/company", "/guid/9202a8c04000641f8000000004f29379", "/user/dchwalisz/default_domain/public_radio_network", "/music/genre" ], "name": "National Public Radio" }, { "type": [ "/common/topic", "/broadcast/radio_format", "/user/cotton/default_domain/broadcast_genre" ], "name": "Talk radio" } ], "id": "/guid/9202a8c04000641f800000000620b242", "name": "Good Morning America" } ] }, "status": "200 OK", "code": "/api/status/ok" } Note that NPR is listed as a value for "/user/cotton/default_domain/broadcaster/broadcast_genres", but that field is supposed to be of type "/user/cotton/default_domain/broadcast_genre", and it is not! Have fun, Arthur ___________________________________________ Arthur van Hoff, CTO Software and Services, Dell-ZING W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071201/d04b5835/attachment.htm From jg at metaweb.com Sun Dec 2 03:36:30 2007 From: jg at metaweb.com (John Giannandrea) Date: Sat, 1 Dec 2007 19:36:30 -0800 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: <8251BAE5-942E-467B-98E8-B2E363FF507F@metaweb.com> Arthur van Hoff wrote: > When adding a genre to an podcast I accidentally picked National > Public Radio from the popup list. The expected type for the was / > user/cotton/default_domain/broadcast_genre, and NPR was not of that > type. Why does the site allow me to pick a topics that is not of the > correct type? Can?t it restrict the list to just the valid type for > that property? The current UI does this because not everything is typed yet, and it could well be that the genre exists as a topic but has not been typed as a genre. The intention is that the autocomplete UI will show you matching types first, and then if there are more matching topics, those too. You are right that as more stuff is correctly typed, this feature risks generating more errors than additions. If you are sure that all the available broadcast_genre's are mostly complete, then you could make the type an 'enumeration'. That would prevent one from making any new genres from the dropdown. An example of an enumeration is /people/gender -jg From skud at infotrope.net Sun Dec 2 07:36:40 2007 From: skud at infotrope.net (Kirrily Robert) Date: Sun, 2 Dec 2007 17:36:40 +1000 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: On Dec 2, 2007 12:03 PM, Arthur van Hoff wrote: > When adding a genre to an podcast I accidentally picked National Public > Radio from the popup list. The expected type for the was > /user/cotton/default_domain/broadcast_genre, and NPR was not of that type. > Why does the site allow me to pick a topics that is not of the correct type? > Can't it restrict the list to just the valid type for that property? As they say in the classics: "That's a feature, not a bug!" John's described the reasoning behind it, but I'll just add that if you want to revert your mistake properly, you have to do it in two places: 1) remove the genre from the list on the podcast's page 2) remove the type "podcast genre" from the NPR page Annoying I know, but the ability to add types to topics really is one of freebase's strongest features! K. -- Kirrily Robert skud at infotrope.net http://infotrope.net From AVH at zing.net Sun Dec 2 08:09:01 2007 From: AVH at zing.net (Arthur van Hoff) Date: Sun, 2 Dec 2007 00:09:01 -0800 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: Just for kicks I added the postal code 94025 as founder of the NPR radio station. I don't understand why a postal code is allowed to also be a company founder and a person. Maybe you need to explain more clearly why this is a good thing... My concern is that if we want the public to contribute freely to the data base, then there needs to be a type system that is actually enforced. Otherwise it will end up in a mess that will be very difficult to untangle. I would have expected that adding a new type to a topic would require an explicit action, one that is only allowed in certain cases. But instead it appears that it is an implicit (and often undesired) side effect of accidentally selecting the wrong item from a list when editing an unrelated type. By the way, undoing this is much harder than it would first appear. If you do it in the wrong order you end up with a property pointing to an object of the wrong type, which appears in the database, but not in the UI. This will break my application, which expects the property to only refer to objects of the correct type. -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Kirrily Robert Sent: Saturday, December 01, 2007 11:37 PM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] type checking? On Dec 2, 2007 12:03 PM, Arthur van Hoff wrote: > When adding a genre to an podcast I accidentally picked National Public > Radio from the popup list. The expected type for the was > /user/cotton/default_domain/broadcast_genre, and NPR was not of that type. > Why does the site allow me to pick a topics that is not of the correct type? > Can't it restrict the list to just the valid type for that property? As they say in the classics: "That's a feature, not a bug!" John's described the reasoning behind it, but I'll just add that if you want to revert your mistake properly, you have to do it in two places: 1) remove the genre from the list on the podcast's page 2) remove the type "podcast genre" from the NPR page Annoying I know, but the ability to add types to topics really is one of freebase's strongest features! K. -- Kirrily Robert skud at infotrope.net http://infotrope.net _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From narphorium at gmail.com Sun Dec 2 08:44:22 2007 From: narphorium at gmail.com (Shawn Simister) Date: Sun, 02 Dec 2007 03:44:22 -0500 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: <47527066.7010100@gmail.com> An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071202/290cb8da/attachment.htm From jg at metaweb.com Sun Dec 2 20:56:04 2007 From: jg at metaweb.com (John Giannandrea) Date: Sun, 2 Dec 2007 12:56:04 -0800 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: Arthur van Hoff wrote: > Just for kicks I added the postal code 94025 as founder of the NPR > radio > station. I don't understand why a postal code is allowed to also be a > company founder and a person. Maybe you need to explain more clearly > why > this is a good thing... Ill let the client designers respond to the suggestions that its too easy to type things from autocomplete. Its certainly too hard to clean up, I agree. When you remove the type, the item no longer shows up, but its still there in MQL. Im not claiming that its a 'good thing' that you made a postal code into a radio station founder, just that loose typing is a prerequisite for a system like this, where not everything is known up front. For example if you knew that 'Terry Gross' was a radio show host but we only had her as a person, then adding her in to the right field would co-type her and give her the correct reverse property. Could there be a confirmation step there, sure, but we dont want to not show you her as an option if you typed in her name. We do have the beginnings of more structure in the type system, enumerations and included types and one could imagine using these to start to limit what gets done easily vs what requires confirmation. So a radio host must already be a person might be a constraint we could use in the UI. Ultimately we can imagine having even more metadata like type exclusion information, that a zipcode is never a person. But that leads directly into the haunted wood called formal ontology. If you imagine a continuum between semi-structured user entered text (wikipedia infoboxes say) and Cyc, I imagine that we will be most successful if we end up somewhere in the middle. So our type system is *not* normative, and is loose specifically so we can capture information that was unexpected and then, as a community, derive long- lasting types from the data users created. > UI. This will break my application, which expects the property to only > refer to objects of the correct type. MQL explicitly does not enforce strict typing. If your application has code that requires that its dealing with a radio station founder, you should add that as a type constraint in the place you extract those properties. In theory we could add a stricter query mode to MQL, but haven't yet. -jg From robert at metaweb.com Sun Dec 2 21:11:39 2007 From: robert at metaweb.com (Robert Cook) Date: Sun, 2 Dec 2007 13:11:39 -0800 Subject: [Developers] type checking? In-Reply-To: References: Message-ID: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com> This is my philosophy as well: Default to very open input in the spirit of Wikipedia rather than that of a strict database. Regarding the particular problem that was frustrating Arthur, I think there might be a simple solution we could incorporate into the Freebase application. If a user removes a property value and he had created that property himself and the referenced topic (the topic on the other side of the link) was typed at the same time, then detype that referenced topic. This way the natural thing happens. If you make a mistake, it's cleaned up. We probably need some similar logic for deleting CVTs, which often leave behind cruft when they are deleted from one side. R On Dec 2, 2007, at 12:56 PM, John Giannandrea wrote: > > Arthur van Hoff wrote: >> Just for kicks I added the postal code 94025 as founder of the NPR >> radio >> station. I don't understand why a postal code is allowed to also be a >> company founder and a person. Maybe you need to explain more clearly >> why >> this is a good thing... > > Ill let the client designers respond to the suggestions that its too > easy to type things from autocomplete. Its certainly too hard to > clean up, I agree. When you remove the type, the item no longer shows > up, but its still there in MQL. > > Im not claiming that its a 'good thing' that you made a postal code > into a radio station founder, just that loose typing is a prerequisite > for a system like this, where not everything is known up front. For > example if you knew that 'Terry Gross' was a radio show host but we > only had her as a person, then adding her in to the right field would > co-type her and give her the correct reverse property. Could there be > a confirmation step there, sure, but we dont want to not show you her > as an option if you typed in her name. > > We do have the beginnings of more structure in the type system, > enumerations and included types and one could imagine using these to > start to limit what gets done easily vs what requires confirmation. > So a radio host must already be a person might be a constraint we > could use in the UI. > > Ultimately we can imagine having even more metadata like type > exclusion information, that a zipcode is never a person. But that > leads directly into the haunted wood called formal ontology. If you > imagine a continuum between semi-structured user entered text > (wikipedia infoboxes say) and Cyc, I imagine that we will be most > successful if we end up somewhere in the middle. So our type system > is *not* normative, and is loose specifically so we can capture > information that was unexpected and then, as a community, derive long- > lasting types from the data users created. > >> UI. This will break my application, which expects the property to >> only >> refer to objects of the correct type. > > MQL explicitly does not enforce strict typing. If your application > has code that requires that its dealing with a radio station founder, > you should add that as a type constraint in the place you extract > those properties. In theory we could add a stricter query mode to > MQL, but haven't yet. > > -jg > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From brendan at metaweb.com Mon Dec 3 18:59:23 2007 From: brendan at metaweb.com (brendan neutra) Date: Mon, 03 Dec 2007 10:59:23 -0800 Subject: [Developers] type checking? In-Reply-To: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com> References: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com> Message-ID: <4754520B.30605@metaweb.com> Better/easier cleanup seems like a win-win. Prompting the user (or other obstacles in the UI pattern) involves trade-offs: if simultaneously linking and typing a target object (e.g. linking to Terry Gross *and* making her a radio host in one shot) is an action that improves the quality of the data the vast majority of the time, maybe it's best not to make the users go through an extra hoop with a confirmation prompt. If it is an action that has the potential of degrading the quality of the data (which this action does, currently) and the cost of the degradation outweighs the benefits of the easy input, re-design. This kind of tradeoff is likely to remain interesting, dare I say, forever (one can hope?). What I mean is, we will always have domains of knowledge that are new and incomplete. I suppose a good design can side-step what often appears as a dilemma. Just a thought, from a non-designer... Brendan Robert Cook wrote: > This is my philosophy as well: Default to very open input in the > spirit of Wikipedia rather than that of a strict database. > > Regarding the particular problem that was frustrating Arthur, I think > there might be a simple solution we could incorporate into the > Freebase application. If a user removes a property value and he had > created that property himself and the referenced topic (the topic on > the other side of the link) was typed at the same time, then detype > that referenced topic. > > This way the natural thing happens. If you make a mistake, it's > cleaned up. > > We probably need some similar logic for deleting CVTs, which often > leave behind cruft when they are deleted from one side. > > R > > On Dec 2, 2007, at 12:56 PM, John Giannandrea wrote: > >> Arthur van Hoff wrote: >>> Just for kicks I added the postal code 94025 as founder of the NPR >>> radio >>> station. I don't understand why a postal code is allowed to also be a >>> company founder and a person. Maybe you need to explain more clearly >>> why >>> this is a good thing... >> Ill let the client designers respond to the suggestions that its too >> easy to type things from autocomplete. Its certainly too hard to >> clean up, I agree. When you remove the type, the item no longer shows >> up, but its still there in MQL. >> >> Im not claiming that its a 'good thing' that you made a postal code >> into a radio station founder, just that loose typing is a prerequisite >> for a system like this, where not everything is known up front. For >> example if you knew that 'Terry Gross' was a radio show host but we >> only had her as a person, then adding her in to the right field would >> co-type her and give her the correct reverse property. Could there be >> a confirmation step there, sure, but we dont want to not show you her >> as an option if you typed in her name. >> >> We do have the beginnings of more structure in the type system, >> enumerations and included types and one could imagine using these to >> start to limit what gets done easily vs what requires confirmation. >> So a radio host must already be a person might be a constraint we >> could use in the UI. >> >> Ultimately we can imagine having even more metadata like type >> exclusion information, that a zipcode is never a person. But that >> leads directly into the haunted wood called formal ontology. If you >> imagine a continuum between semi-structured user entered text >> (wikipedia infoboxes say) and Cyc, I imagine that we will be most >> successful if we end up somewhere in the middle. So our type system >> is *not* normative, and is loose specifically so we can capture >> information that was unexpected and then, as a community, derive long- >> lasting types from the data users created. >> >>> UI. This will break my application, which expects the property to >>> only >>> refer to objects of the correct type. >> MQL explicitly does not enforce strict typing. If your application >> has code that requires that its dealing with a radio station founder, >> you should add that as a type constraint in the place you extract >> those properties. In theory we could add a stricter query mode to >> MQL, but haven't yet. >> >> -jg >> >> _______________________________________________ >> Developers mailing list >> Developers at freebase.com >> http://lists.freebase.com/mailman/listinfo/developers > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From AVH at zing.net Mon Dec 3 19:42:50 2007 From: AVH at zing.net (Arthur van Hoff) Date: Mon, 3 Dec 2007 11:42:50 -0800 Subject: [Developers] Finding duplicate names? Message-ID: Hi, How do I query for all objects of a specific type that have duplicate names? For example, there are two postal codes called "94025". "query": [{ "name":"94025", "id":null }] I'd like to generate a list of all other postal codes that have duplicates. Thanks. ___________________________________________ Arthur van Hoff, CTO Software and Services, Dell-ZING W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071203/0c65f8d3/attachment.htm From al at metaweb.com Mon Dec 3 20:05:26 2007 From: al at metaweb.com (Alexander Marks) Date: Mon, 3 Dec 2007 15:05:26 -0500 (EST) Subject: [Developers] Finding duplicate names? In-Reply-To: Message-ID: <1862198.4791196712326562.JavaMail.root@h00215> There is no direct way to query for duplicate names in MQL. The solution is to cursor through every topic of type /location/postal_code and check for duplicates locally. I have attached a list of duplicate postal codes (there are 53), and I will also flag them for merge. At some point we will start doing this sort of cleanup more regularly. Of course, not all types have the same degree of expected name uniqueness as postal codes in a given country do. Al ----- Original Message ----- From: "Arthur van Hoff" To: "For discussions about MQL, Freebase API and apps built on Freebase" Sent: Monday, December 3, 2007 11:42:50 AM (GMT-0800) America/Los_Angeles Subject: [Developers] Finding duplicate names? Hi, How do I query for all objects of a specific type that have duplicate names? For example, there are two postal codes called ?94025?. ?query?: [{ "name":"94025", "id":null }] I?d like to generate a list of all other postal codes that have duplicates. Thanks. _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers -------------- next part -------------- A non-text attachment was scrubbed... Name: duplicate_postal_codes.tsv Type: application/octet-stream Size: 320 bytes Desc: not available Url : http://lists.freebase.com/pipermail/developers/attachments/20071203/9a504df5/attachment-0001.obj From duck at kronkltd.net Mon Dec 3 20:43:21 2007 From: duck at kronkltd.net (Daniel Renfer) Date: Mon, 3 Dec 2007 20:43:21 +0000 Subject: [Developers] type checking? In-Reply-To: <4754520B.30605@metaweb.com> References: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com> <4754520B.30605@metaweb.com> Message-ID: <10743d6d0712031243y5bd11798r45b1078a53db9189@mail.gmail.com> How about (if possible) making it blatantly obvious that the Topic being selected has already been typed the appropriate type and de-emphasizing the other Topics that match the search, but have not yet been given the expected type. Even just moving that type to the beginning of the list of types and bolding it would help. I like the fact that Freebase will automatically add the type for me if I make a relationship. If I had to leave the page I am editing, search for another page, add the "TV Actor" type then go back and add that actor, I don't think I would ever use Freebase. (That's not really a good example since most of the properties that expect a 'TV Actor' have reciprocal properties, but there are still some properties where the link is only one way at the moment where this example still stands) On 12/3/07, brendan neutra wrote: > > > Better/easier cleanup seems like a win-win. > > Prompting the user (or other obstacles in the UI pattern) involves > trade-offs: > if simultaneously linking and typing a target object (e.g. linking to > Terry > Gross *and* making her a radio host in one shot) is an action that > improves the > quality of the data the vast majority of the time, maybe it's best not to > make > the users go through an extra hoop with a confirmation prompt. If it is > an > action that has the potential of degrading the quality of the data (which > this > action does, currently) and the cost of the degradation outweighs the > benefits > of the easy input, re-design. > > This kind of tradeoff is likely to remain interesting, dare I say, forever > (one > can hope?). What I mean is, we will always have domains of knowledge that > are > new and incomplete. I suppose a good design can side-step what often > appears as > a dilemma. Just a thought, from a non-designer... > > Brendan > > > > Robert Cook wrote: > > This is my philosophy as well: Default to very open input in the > > spirit of Wikipedia rather than that of a strict database. > > > > Regarding the particular problem that was frustrating Arthur, I think > > there might be a simple solution we could incorporate into the > > Freebase application. If a user removes a property value and he had > > created that property himself and the referenced topic (the topic on > > the other side of the link) was typed at the same time, then detype > > that referenced topic. > > > > This way the natural thing happens. If you make a mistake, it's > > cleaned up. > > > > We probably need some similar logic for deleting CVTs, which often > > leave behind cruft when they are deleted from one side. > > > > R > > > > On Dec 2, 2007, at 12:56 PM, John Giannandrea wrote: > > > >> Arthur van Hoff wrote: > >>> Just for kicks I added the postal code 94025 as founder of the NPR > >>> radio > >>> station. I don't understand why a postal code is allowed to also be a > >>> company founder and a person. Maybe you need to explain more clearly > >>> why > >>> this is a good thing... > >> Ill let the client designers respond to the suggestions that its too > >> easy to type things from autocomplete. Its certainly too hard to > >> clean up, I agree. When you remove the type, the item no longer shows > >> up, but its still there in MQL. > >> > >> Im not claiming that its a 'good thing' that you made a postal code > >> into a radio station founder, just that loose typing is a prerequisite > >> for a system like this, where not everything is known up front. For > >> example if you knew that 'Terry Gross' was a radio show host but we > >> only had her as a person, then adding her in to the right field would > >> co-type her and give her the correct reverse property. Could there be > >> a confirmation step there, sure, but we dont want to not show you her > >> as an option if you typed in her name. > >> > >> We do have the beginnings of more structure in the type system, > >> enumerations and included types and one could imagine using these to > >> start to limit what gets done easily vs what requires confirmation. > >> So a radio host must already be a person might be a constraint we > >> could use in the UI. > >> > >> Ultimately we can imagine having even more metadata like type > >> exclusion information, that a zipcode is never a person. But that > >> leads directly into the haunted wood called formal ontology. If you > >> imagine a continuum between semi-structured user entered text > >> (wikipedia infoboxes say) and Cyc, I imagine that we will be most > >> successful if we end up somewhere in the middle. So our type system > >> is *not* normative, and is loose specifically so we can capture > >> information that was unexpected and then, as a community, derive long- > >> lasting types from the data users created. > >> > >>> UI. This will break my application, which expects the property to > >>> only > >>> refer to objects of the correct type. > >> MQL explicitly does not enforce strict typing. If your application > >> has code that requires that its dealing with a radio station founder, > >> you should add that as a type constraint in the place you extract > >> those properties. In theory we could add a stricter query mode to > >> MQL, but haven't yet. > >> > >> -jg > >> > >> _______________________________________________ > >> Developers mailing list > >> Developers at freebase.com > >> http://lists.freebase.com/mailman/listinfo/developers > > > > _______________________________________________ > > Developers mailing list > > Developers at freebase.com > > http://lists.freebase.com/mailman/listinfo/developers > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071203/ccdb6661/attachment.htm From dmilbrath at metaweb.com Mon Dec 3 22:54:03 2007 From: dmilbrath at metaweb.com (Dan Milbrath) Date: Mon, 3 Dec 2007 14:54:03 -0800 Subject: [Developers] type checking? In-Reply-To: <10743d6d0712031243y5bd11798r45b1078a53db9189@mail.gmail.com> References: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com> <4754520B.30605@metaweb.com> <10743d6d0712031243y5bd11798r45b1078a53db9189@mail.gmail.com> Message-ID: <07E370BD-675B-4757-9C67-129BFDEC20D1@metaweb.com> This suggestion is a good one and would probably help. This, along with Robert's idea for cleanup, are enhancements that we will definitely consider for an upcoming release. In general I'd like to avoid adding a confirmation step into the flow. We want to make it as easy as possible for people to contribute data and add types to topics in the system. I think this thread has highlighted the need for better tools to correct mistakes, but I don't think the general input case should be made more complex. If 9 out of 10 people are applying types correctly using the current UI, I'd rather not have everyone have to click a confirmation button after each edit to prevent that 10% case (the error rate is almost certainly much lower). With respect to the case referenced earlier this thread, its certainly possible that zip codes can be typed as people, but as with Wikipedia we hope that the community will quickly find and correct obvious data errors like this. On Dec 3, 2007, at 12:43 PM, Daniel Renfer wrote: > How about (if possible) making it blatantly obvious that the Topic > being selected has already been typed the appropriate type and de- > emphasizing the other Topics that match the search, but have not > yet been given the expected type. Even just moving that type to the > beginning of the list of types and bolding it would help. Robert Cook wrote: > This is my philosophy as well: Default to very open input in the > spirit of Wikipedia rather than that of a strict database. > > Regarding the particular problem that was frustrating Arthur, I think > there might be a simple solution we could incorporate into the > Freebase application. If a user removes a property value and he had > created that property himself and the referenced topic (the topic on > the other side of the link) was typed at the same time, then detype > that referenced topic. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071203/661aee4b/attachment.htm From AVH at zing.net Mon Dec 3 23:56:10 2007 From: AVH at zing.net (Arthur van Hoff) Date: Mon, 3 Dec 2007 15:56:10 -0800 Subject: [Developers] type checking? In-Reply-To: <07E370BD-675B-4757-9C67-129BFDEC20D1@metaweb.com> References: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com><4754520B.30605@metaweb.com><10743d6d0712031243y5bd11798r45b1078a53db9189@mail.gmail.com> <07E370BD-675B-4757-9C67-129BFDEC20D1@metaweb.com> Message-ID: There should be no confirmation necessary when the type of the selected object matches the type of the property. It is only when you add a new type to an object that a confirmation step can help to avoid mistakes. Here are some improvements that can be made in the UI: - Improve the relevance matching: o List objects of the appropriate types first. o List objects that have "compatible" types second. (i.e. /music/actor is compatible with /film/actor since they both include /people/person). - Add a confirmation step when a new "incompatible" type is added to an object. - Provide an easier mechanism to undo changes (i.e. undo everything I did today, undo that last thing I just did, etc..) I'm not suggesting that we make it harder to enter data, just that we make it harder to make mistakes when entering data. From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Dan Milbrath Sent: Monday, December 03, 2007 2:54 PM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] type checking? This suggestion is a good one and would probably help. This, along with Robert's idea for cleanup, are enhancements that we will definitely consider for an upcoming release. In general I'd like to avoid adding a confirmation step into the flow. We want to make it as easy as possible for people to contribute data and add types to topics in the system. I think this thread has highlighted the need for better tools to correct mistakes, but I don't think the general input case should be made more complex. If 9 out of 10 people are applying types correctly using the current UI, I'd rather not have everyone have to click a confirmation button after each edit to prevent that 10% case (the error rate is almost certainly much lower). With respect to the case referenced earlier this thread, its certainly possible that zip codes can be typed as people, but as with Wikipedia we hope that the community will quickly find and correct obvious data errors like this. On Dec 3, 2007, at 12:43 PM, Daniel Renfer wrote: How about (if possible) making it blatantly obvious that the Topic being selected has already been typed the appropriate type and de-emphasizing the other Topics that match the search, but have not yet been given the expected type. Even just moving that type to the beginning of the list of types and bolding it would help. Robert Cook wrote: > This is my philosophy as well: Default to very open input in the > spirit of Wikipedia rather than that of a strict database. > > Regarding the particular problem that was frustrating Arthur, I think > there might be a simple solution we could incorporate into the > Freebase application. If a user removes a property value and he had > created that property himself and the referenced topic (the topic on > the other side of the link) was typed at the same time, then detype > that referenced topic. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071203/308eb490/attachment-0001.htm From dmilbrath at metaweb.com Tue Dec 4 00:10:11 2007 From: dmilbrath at metaweb.com (Dan Milbrath) Date: Mon, 3 Dec 2007 16:10:11 -0800 Subject: [Developers] type checking? In-Reply-To: References: <7B43BB83-76E1-42AB-94F5-08DCCFF56BBB@metaweb.com><4754520B.30605@metaweb.com><10743d6d0712031243y5bd11798r45b1078a53db9189@mail.gmail.com> <07E370BD-675B-4757-9C67-129BFDEC20D1@metaweb.com> Message-ID: <643CF58F-FBE7-4FFD-9422-F6FFAA4ADFB3@metaweb.com> ah, perhaps I misunderstood your suggestion. Defining incompatible types might be a little tricky, but we could look at alerting someone if a type is being added that isn't commonly found paired with another type. The first couple items you list are already being worked on. We will take a look at your other ideas too. Thanks, Dan On Dec 3, 2007, at 3:56 PM, Arthur van Hoff wrote: > There should be no confirmation necessary when the type of the > selected object matches the type of the property. It is only when > you add a new type to an object that a confirmation step can help > to avoid mistakes. Here are some improvements that can be made in > the UI: > > - Improve the relevance matching: > o List objects of the appropriate types first. > o List objects that have ?compatible? types second. (i.e. /music/ > actor is compatible with /film/actor since they both include / > people/person). > - Add a confirmation step when a new ?incompatible? type is > added to an object. > - Provide an easier mechanism to undo changes (i.e. undo > everything I did today, undo that last thing I just did, etc..) > > I?m not suggesting that we make it harder to enter data, just that > we make it harder to make mistakes when entering data. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071203/449ea1b7/attachment.htm From AVH at zing.net Tue Dec 4 21:51:46 2007 From: AVH at zing.net (Arthur van Hoff) Date: Tue, 4 Dec 2007 13:51:46 -0800 Subject: [Developers] name is null in search results? Message-ID: Hi, I found that when you search for "Brittain" one result is returned by /api/service/search which has a name property that is null. Is that a legal result? It broke my application since I was assuming that all returned objects would have a name property. In the database this object is not a /common/topic. "query": [{ "id":"/guid/9202a8c04000641f8000000004074694", "name":null, "type":[] }] http://www.freebase.com/view/guid/9202a8c04000641f8000000004074694 Have fun, Arthur van Hoff ___________________________________________ Arthur van Hoff, CTO Software and Services, Dell-ZING W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071204/1619c374/attachment.htm From kurt at inf.fu-berlin.de Tue Dec 4 22:16:35 2007 From: kurt at inf.fu-berlin.de (Sebastian Kurt) Date: Tue, 04 Dec 2007 23:16:35 +0100 Subject: [Developers] Merge two queries Message-ID: <4755D1C3.1010805@inf.fu-berlin.de> hi, MQL is not as easy as it seems to be. I tried to merge to queries but only getting errors. could you help? What should it do? "[1] answering ID an DOMAIN of , ID is used in [2] (as myIdForKeyword) to ask for CATEGORY of it" cheers sebastian [1] { "domid":{ "query":[{ "name":null, "name~=":"", "type":[{ "domain":null, "id":null, "name":null, "type":"/type/type" }] }] } } [2] { "category":{ "query":[{ "/type/type/domain":{ "/type/reflect/any_reverse":[{ "name":null, "type":"/freebase/domain_category" }], "name":null }, "id":"myIdForKeyword", "name":null }] } } http://pastebin.com/de4bda67 -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de From jg at metaweb.com Tue Dec 4 22:54:21 2007 From: jg at metaweb.com (John Giannandrea) Date: Tue, 4 Dec 2007 14:54:21 -0800 Subject: [Developers] Merge two queries In-Reply-To: <4755D1C3.1010805@inf.fu-berlin.de> References: <4755D1C3.1010805@inf.fu-berlin.de> Message-ID: <8592B376-901A-4DAD-8CA9-C550C10FB6C5@metaweb.com> > Sebastian Kurt wrote: >> What should it do? >> "[1] answering ID an DOMAIN of , ID is used in [2] (as >> myIdForKeyword) to ask for CATEGORY of it" >> it wasnt clear to me if you are trying to find a domain or a type. Here is an example of constraining both the domain name and the type name and getting the enclosing category. You can remove the constraints you dont want -jg { "query" : [ { "domains" : { "name" : null, "name~=" : "film", "type" : "/type/domain", "types" : [ { "name" : null, "name~=" : "director" } ] }, "name" : null, "type" : "/freebase/domain_category" } ] } From crism at metaweb.com Wed Dec 5 01:56:57 2007 From: crism at metaweb.com (Christopher R. Maden) Date: Tue, 04 Dec 2007 17:56:57 -0800 Subject: [Developers] name is null in search results? In-Reply-To: References: Message-ID: <47560569.7040500@metaweb.com> Arthur van Hoff wrote: > I found that when you search for ?Brittain? one result is returned by > /api/service/search which has a name property that is null. Is that a > legal result? It broke my application since I was assuming that all > returned objects would have a name property. It is not guaranteed that all objects will have English names, nor names at all. In particular, compound value types, such as mailing addresses (which is) will rarely have display names. It is true, however, that things without names are probably not of primary interest to users, and could be filtered out of your results. (It is, IMO, proper for the relevance search to return them, because someone might be searching for things on Brittain Rd., in this case.) It is also true that nearly all topics ? though there is not a guarantee of all ? will have names, but again, the names may not be English. (For instance, musical albums in languages other than English whose titles are almost or entirely non-Latin characters are not labeled as English, since the labels are not meaningful to non-English speakers.) As a general rule, open queries where the types and instances could be anything should be written as loosely as possible, or any constraints (such as must-have-a-name) should be expressed in the query (e.g. "name" : { "value" : null, "lang" : "/lang/en" } in order to require an English name). ~Chris -- Christopher R. Maden Data Architect Metaweb Technologies, Inc. From kurt at inf.fu-berlin.de Wed Dec 5 12:34:03 2007 From: kurt at inf.fu-berlin.de (Sebastian Kurt) Date: Wed, 05 Dec 2007 13:34:03 +0100 Subject: [Developers] Merge two queries In-Reply-To: <8592B376-901A-4DAD-8CA9-C550C10FB6C5@metaweb.com> References: <4755D1C3.1010805@inf.fu-berlin.de> <8592B376-901A-4DAD-8CA9-C550C10FB6C5@metaweb.com> Message-ID: <47569ABB.9030605@inf.fu-berlin.de> Thanks for your help, but it is not what i was looking for. Perhaps not exactly defined by me. I will try again: I query for ID's belonging to a { "someids":{ "query":[{ "name":null, "name~=":"", "type":[{ "id":null, }] }] } } after that (extracting IDs with PHP), I query foreach ID what CATEGORY it is in and whats its name: { "category":{ "query":[{ "/type/type/domain":{ "/type/reflect/any_reverse":[{ "name":null, "type":"/freebase/domain_category" }], "name":null }, "id":"myIdForKeyword", "name":null }] } } Now the question is, if it is possible to merge both: "Query for CATEGORIES (and name of given IDs) of a given " Examplequery for "id" == "/location/country", { "category" : { "query" : [ { "/type/type/domain" : { "/type/reflect/any_reverse" : [ { "name" : null, "type" : "/freebase/domain_category" } ], "name" : null }, "id" : "/location/country", "name" : null } ] } } John Giannandrea schrieb: >> Sebastian Kurt wrote: >>> What should it do? >>> "[1] answering ID an DOMAIN of , ID is used in [2] (as >>> myIdForKeyword) to ask for CATEGORY of it" >>> > > > it wasnt clear to me if you are trying to find a domain or a type. > Here is an example of constraining both the domain name and the type > name and getting the enclosing category. You can remove the > constraints you dont want > -jg > > { > "query" : [ > { > "domains" : { > "name" : null, > "name~=" : "film", > "type" : "/type/domain", > "types" : [ > { > "name" : null, > "name~=" : "director" > } > ] > }, > "name" : null, > "type" : "/freebase/domain_category" > } > ] > } > > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de From crism at metaweb.com Wed Dec 5 15:51:32 2007 From: crism at metaweb.com (Christopher R. Maden) Date: Wed, 5 Dec 2007 10:51:32 -0500 (EST) Subject: [Developers] Merge two queries In-Reply-To: <47569ABB.9030605@inf.fu-berlin.de> Message-ID: <32839737.17041196869892671.JavaMail.root@h00215> Sebastian Kurt wrote: > Thanks for your help, but it is not what i was looking for. Perhaps not > exactly defined by me. I will try again: > > I query for ID's belonging to a > > after that (extracting IDs with PHP), I query foreach ID what CATEGORY > it is in and whats its name: > > Now the question is, if it is possible to merge both: > "Query for CATEGORIES (and name of given IDs) of a given " Sure. Here?s how I built it up. Query for instances of (literally) ?keyword? and their types (with a limit, just for testing): { "someids" : { "query" : [ { "limit" : 5, "name" : null, "name~=" : "keyword", "type" : [ { "id" : null } ] } ] } } But since we are primarily interested in the types, turn the query inside-out (here the limits aren?t for testing, they are because we only need at least one instance at each level, and help the query run faster): { "someids" : { "query" : [ { "id" : null, "instance" : [ { "limit" : 1, "name" : null, "name~=" : "keyword" } ], "type" : "/type/type" } ] } } Now let?s find the domains of those types ? but while we?re at it, let?s turn that inside-out, too: { "someids" : { "query" : [ { "id" : null, "type" : "/type/domain", "types" : [ { "instance" : [ { "limit" : 1, "name" : null, "name~=" : "keyword" } ], "limit" : 1 } ] } ] } } Now, what categories hold those domains? { "someids" : { "query" : [ { "domains" : [ { "limit" : 1, "type" : "/type/domain", "types" : [ { "instance" : [ { "limit" : 1, "name" : null, "name~=" : "keyword" } ], "limit" : 1 } ] } ], "id" : null, "name" : null, "type" : "/freebase/domain_category" } ] } } The answer is ?System? and ?Arts & Entertainment.? ~Chris -- Christopher R. Maden Data Architect Metaweb Technologies, Inc. From AVH at zing.net Wed Dec 5 16:49:34 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 5 Dec 2007 08:49:34 -0800 Subject: [Developers] Merge two queries In-Reply-To: <47569ABB.9030605@inf.fu-berlin.de> References: <4755D1C3.1010805@inf.fu-berlin.de><8592B376-901A-4DAD-8CA9-C550C10FB6C5@metaweb.com> <47569ABB.9030605@inf.fu-berlin.de> Message-ID: Is there an explanation of /type/reflect/any_reverse? The best I can find is this: http://www.freebase.com/view/guid/9202a8c04000641f80000000041ea213 -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Sebastian Kurt Sent: Wednesday, December 05, 2007 4:34 AM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] Merge two queries Thanks for your help, but it is not what i was looking for. Perhaps not exactly defined by me. I will try again: I query for ID's belonging to a { "someids":{ "query":[{ "name":null, "name~=":"", "type":[{ "id":null, }] }] } } after that (extracting IDs with PHP), I query foreach ID what CATEGORY it is in and whats its name: { "category":{ "query":[{ "/type/type/domain":{ "/type/reflect/any_reverse":[{ "name":null, "type":"/freebase/domain_category" }], "name":null }, "id":"myIdForKeyword", "name":null }] } } Now the question is, if it is possible to merge both: "Query for CATEGORIES (and name of given IDs) of a given " Examplequery for "id" == "/location/country", { "category" : { "query" : [ { "/type/type/domain" : { "/type/reflect/any_reverse" : [ { "name" : null, "type" : "/freebase/domain_category" } ], "name" : null }, "id" : "/location/country", "name" : null } ] } } John Giannandrea schrieb: >> Sebastian Kurt wrote: >>> What should it do? >>> "[1] answering ID an DOMAIN of , ID is used in [2] (as >>> myIdForKeyword) to ask for CATEGORY of it" >>> > > > it wasnt clear to me if you are trying to find a domain or a type. > Here is an example of constraining both the domain name and the type > name and getting the enclosing category. You can remove the > constraints you dont want > -jg > > { > "query" : [ > { > "domains" : { > "name" : null, > "name~=" : "film", > "type" : "/type/domain", > "types" : [ > { > "name" : null, > "name~=" : "director" > } > ] > }, > "name" : null, > "type" : "/freebase/domain_category" > } > ] > } > > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From alecf at metaweb.com Wed Dec 5 17:14:34 2007 From: alecf at metaweb.com (Alec Flett) Date: Wed, 05 Dec 2007 09:14:34 -0800 Subject: [Developers] Merge two queries In-Reply-To: <32839737.17041196869892671.JavaMail.root@h00215> References: <32839737.17041196869892671.JavaMail.root@h00215> Message-ID: <4756DC7A.5000201@metaweb.com> Christopher R. Maden wrote: > > But since we are primarily interested in the types, turn the query inside-out (here the limits aren?t for testing, they are because we only need at least one instance at each level, and help the query run faster): > > And just for argument's sake, here's the query not turned inside out.. note that each instance can have multiple types, and each type can be in multiple categories.... so this fans out quite a bit. I left limits out of this query, but they could be similarly inserted Also note in the results that most things are of type /common/topic, which is in the "metaweb system types" category. { "someids" : { "query" : [ { "id" : null, "name" : null, "name~=" : "Martin", "type" : [ { "domain" : [ { "/freebase/domain_profile/category" : [] } ], "id" : null } ] } ] } } > { > "someids" : { > "query" : [ > { > "id" : null, > "instance" : [ > { > "limit" : 1, > "name" : null, > "name~=" : "keyword" > } > ], > "type" : "/type/type" > } > ] > } > } > > Now let?s find the domains of those types ? but while we?re at it, let?s turn that inside-out, too: > > { > "someids" : { > "query" : [ > { > "id" : null, > "type" : "/type/domain", > "types" : [ > { > "instance" : [ > { > "limit" : 1, > "name" : null, > "name~=" : "keyword" > } > ], > "limit" : 1 > } > ] > } > ] > } > } > > Now, what categories hold those domains? > > { > "someids" : { > "query" : [ > { > "domains" : [ > { > "limit" : 1, > "type" : "/type/domain", > "types" : [ > { > "instance" : [ > { > "limit" : 1, > "name" : null, > "name~=" : "keyword" > } > ], > "limit" : 1 > } > ] > } > ], > "id" : null, > "name" : null, > "type" : "/freebase/domain_category" > } > ] > } > } > > The answer is ?System? and ?Arts & Entertainment.? > > ~Chris > From AVH at zing.net Wed Dec 5 17:55:01 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 5 Dec 2007 09:55:01 -0800 Subject: [Developers] any_reverse? Message-ID: I am trying to write a query to find the broadcaster for a podcast without inverting the query. I am guess that I can use "any_reverse", but the query below is not working for me and I can't find a good explanation of how it is supposed to work. Any suggestions on what I might be doing wrong? "query": [{ "name": "ABC News", "type": "/user/cotton/default_domain/podcast", "/type/reflect/any_reverse": [{ "optional":true, "name": null, "link": { "master_property": "/user/cotton/default_domain/broadcaster/broadcasts" } }] }] PS: I know there is a back pointer "/user/cotton/default_domain/broadcast/broadcaster" which makes this easy, but I am trying to understand how to do it the hard way. ___________________________________________ Arthur van Hoff, CTO Software and Services, Dell-ZING W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071205/e1fc50aa/attachment.htm From will at hamstersoup.com Wed Dec 5 18:02:10 2007 From: will at hamstersoup.com (Will Moffat) Date: Wed, 5 Dec 2007 10:02:10 -0800 Subject: [Developers] Merge two queries In-Reply-To: References: <4755D1C3.1010805@inf.fu-berlin.de> <8592B376-901A-4DAD-8CA9-C550C10FB6C5@metaweb.com> <47569ABB.9030605@inf.fu-berlin.de> Message-ID: <2f665fe20712051002t469f1b51vad9620ecfa62d4ab@mail.gmail.com> Hi Arthur, > Is there an explanation of /type/reflect/any_reverse? I started to make some examples on this but never finished. Have a look at: http://www.freebase.com/view//guid/9202a8c04000641f8000000005b7bd28 (Click the 'web link') If anybody feels like helping fill in the missing pieces then I would be happy to work on it some more. regards, --Will From jg at metaweb.com Wed Dec 5 18:11:41 2007 From: jg at metaweb.com (John Giannandrea) Date: Wed, 5 Dec 2007 10:11:41 -0800 Subject: [Developers] any_reverse? In-Reply-To: References: Message-ID: <6188FBAB-FCFC-4BBC-B9D2-003F89766425@metaweb.com> Arthur, the master property in this case is broadcasts, so you want "/type/ reflect/any_master" not "any_reverse" which one is master depends on how the schema was built. this schema viewer displays a little [m] for the master side. http://mjtemplate.org/examples/schemas/type.html?id=/user/cotton/default_domain/broadcaster -jg On Dec 5, 2007, at 9:55 AM, Arthur van Hoff wrote: > I am trying to write a query to find the broadcaster for a podcast > without inverting the query. I am guess that I can use > ?any_reverse?, but the query below is not working for me and I can?t > find a good explanation of how it is supposed to work. Any > suggestions on what I might be doing wrong? > > ?query?: [{ > "name": "ABC News", > "type": "/user/cotton/default_domain/podcast", > "/type/reflect/any_reverse": [{ > "optional":true, > "name": null, > "link": { > "master_property": "/user/cotton/default_domain/ > broadcaster/broadcasts" > } > }] > }] > > PS: I know there is a back pointer "/user/cotton/default_domain/ > broadcast/broadcaster? which makes this easy, but I am trying to > understand how to do it the hard way. > ___________________________________________ > Arthur van Hoff, CTO Software and Services, Dell-ZING > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From alecf at metaweb.com Wed Dec 5 18:17:00 2007 From: alecf at metaweb.com (Alec Flett) Date: Wed, 05 Dec 2007 10:17:00 -0800 Subject: [Developers] any_reverse? In-Reply-To: References: Message-ID: <4756EB1C.7000606@metaweb.com> Arthur van Hoff wrote: > > I am trying to write a query to find the broadcaster for a podcast > without inverting the query. I am guess that I can use "any_reverse", > but the query below is not working for me and I can't find a good > explanation of how it is supposed to work. Any suggestions on what I > might be doing wrong? > > > > "query": [{ > > "name": "ABC News", > > "type": "/user/cotton/default_domain/podcast", > > "/type/reflect/any_reverse": [{ > > "optional":true, > > "name": null, > > "link": { > > "master_property": > "/user/cotton/default_domain/broadcaster/broadcasts" > > } > > }] > > }] > > > > PS: I know there is a back pointer > "/user/cotton/default_domain/broadcast/broadcaster" which makes this > easy, but I am trying to understand how to do it the hard way. > Heh, yeah sometimes the hard way is the only way to go.. sometimes programatically the only good way to phrase queries is with any_master/any_reverse. You'll see that we do this when viewing the properties of a particular topic in the filter view.. here's bill clinton's education - Use firebug to find the the any_master phrase in the MQL query: You've got the right general idea though, and I think you've got any_reverse mixed up with the wrong master_property... so you can either use any_master and /user/cotton/default_domain/broadcaster/broadcasts, or you can use any_reverse with /user/cotton/default_domain/broadcast/broadcaster. A third option is to phrase your master_property clause as such: "link": { "master_property": {"reverse_property": "/user/cotton/default_domain/broadcaster/broadcasts" }} } this is saying "give me the reverse property, where the reverse of the link is ...broadcaster/broadcasts... I suspect that any_master is really what you want though.. Alec > > ___________________________________________ > > Arthur van Hoff, CTO Software and Services, Dell-ZING > > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071205/93d58da7/attachment.htm From AVH at zing.net Wed Dec 5 19:27:49 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 5 Dec 2007 11:27:49 -0800 Subject: [Developers] any_reverse? In-Reply-To: <6188FBAB-FCFC-4BBC-B9D2-003F89766425@metaweb.com> References: <6188FBAB-FCFC-4BBC-B9D2-003F89766425@metaweb.com> Message-ID: I'm still not having any luck with this. Do you mean this? "query": [{ "name": "ABC News", "id": null, "type": "/user/cotton/default_domain/podcast", "/type/reflect/any_master": [{ "optional":true, "name": null, "link": { "master_property": "/user/cotton/default_domain/broadcaster/broadcasts" } }] }] This also does not return the expected link... -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of John Giannandrea Sent: Wednesday, December 05, 2007 10:12 AM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] any_reverse? Arthur, the master property in this case is broadcasts, so you want "/type/ reflect/any_master" not "any_reverse" which one is master depends on how the schema was built. this schema viewer displays a little [m] for the master side. http://mjtemplate.org/examples/schemas/type.html?id=/user/cotton/default _domain/broadcaster -jg On Dec 5, 2007, at 9:55 AM, Arthur van Hoff wrote: > I am trying to write a query to find the broadcaster for a podcast > without inverting the query. I am guess that I can use > "any_reverse", but the query below is not working for me and I can't > find a good explanation of how it is supposed to work. Any > suggestions on what I might be doing wrong? > > "query": [{ > "name": "ABC News", > "type": "/user/cotton/default_domain/podcast", > "/type/reflect/any_reverse": [{ > "optional":true, > "name": null, > "link": { > "master_property": "/user/cotton/default_domain/ > broadcaster/broadcasts" > } > }] > }] > > PS: I know there is a back pointer "/user/cotton/default_domain/ > broadcast/broadcaster" which makes this easy, but I am trying to > understand how to do it the hard way. > ___________________________________________ > Arthur van Hoff, CTO Software and Services, Dell-ZING > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From darin at metaweb.com Wed Dec 5 20:24:12 2007 From: darin at metaweb.com (Darin Wilson) Date: Wed, 5 Dec 2007 12:24:12 -0800 Subject: [Developers] any_reverse? In-Reply-To: References: <6188FBAB-FCFC-4BBC-B9D2-003F89766425@metaweb.com> Message-ID: <21FF6849-B7D8-4BFA-9299-ABCCA6D4EB1A@metaweb.com> /type/reflect/any_master asks for outgoing properties of the topic, so the query you have below is asking for the "/user/cotton/ default_domain/broadcaster/broadcasts" property that's hanging off "ABC News". Since "ABC News" is a broadcast and not a broadcaster, this doesn't work. I think what you're looking for is: { "query" : [ { "/type/reflect/any_master" : [ { "link" : { "master_property" : "/user/cotton/default_domain/ broadcast/broadcaster" }, "name" : null, "optional" : true } ], "name" : "ABC News", "type" : "/user/cotton/default_domain/podcast" } ] } which is equivalent to: { "query" : [ { "name" : "ABC News", "type" : "/user/cotton/default_domain/podcast", "/user/cotton/default_domain/broadcast/broadcaster" : { "name" : null, "optional" : true } } ] } Darin On Dec 5, 2007, at 11:27 AM, Arthur van Hoff wrote: > I'm still not having any luck with this. Do you mean this? > > "query": [{ > "name": "ABC News", > "id": null, > "type": "/user/cotton/default_domain/podcast", > "/type/reflect/any_master": [{ > "optional":true, > "name": null, > "link": { > "master_property": > "/user/cotton/default_domain/broadcaster/broadcasts" > } > }] > }] > > This also does not return the expected link... > > -----Original Message----- > From: developers-bounces at freebase.com > [mailto:developers-bounces at freebase.com] On Behalf Of John Giannandrea > Sent: Wednesday, December 05, 2007 10:12 AM > To: For discussions about MQL,Freebase API and apps built on Freebase > Subject: Re: [Developers] any_reverse? > > > Arthur, > the master property in this case is broadcasts, so you want "/type/ > reflect/any_master" not "any_reverse" > > which one is master depends on how the schema was built. this schema > viewer displays a little [m] for the master side. > http://mjtemplate.org/examples/schemas/type.html?id=/user/cotton/ > default > _domain/broadcaster > > -jg > > > On Dec 5, 2007, at 9:55 AM, Arthur van Hoff wrote: > >> I am trying to write a query to find the broadcaster for a podcast >> without inverting the query. I am guess that I can use >> "any_reverse", but the query below is not working for me and I can't >> find a good explanation of how it is supposed to work. Any >> suggestions on what I might be doing wrong? >> >> "query": [{ >> "name": "ABC News", >> "type": "/user/cotton/default_domain/podcast", >> "/type/reflect/any_reverse": [{ >> "optional":true, >> "name": null, >> "link": { >> "master_property": "/user/cotton/default_domain/ >> broadcaster/broadcasts" >> } >> }] >> }] >> >> PS: I know there is a back pointer "/user/cotton/default_domain/ >> broadcast/broadcaster" which makes this easy, but I am trying to >> understand how to do it the hard way. >> ___________________________________________ >> Arthur van Hoff, CTO Software and Services, Dell-ZING >> W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 >> >> _______________________________________________ >> Developers mailing list >> Developers at freebase.com >> http://lists.freebase.com/mailman/listinfo/developers > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From jg at metaweb.com Wed Dec 5 20:44:03 2007 From: jg at metaweb.com (John Giannandrea) Date: Wed, 5 Dec 2007 12:44:03 -0800 Subject: [Developers] any_reverse? In-Reply-To: References: <6188FBAB-FCFC-4BBC-B9D2-003F89766425@metaweb.com> Message-ID: <6E18319F-7C12-4CEA-9E20-6AE892BCC39C@metaweb.com> I had tested the query on sandbox, it appears that cotton's data is different there... -jg On Dec 5, 2007, at 11:27 AM, Arthur van Hoff wrote: > I'm still not having any luck with this. From tsturge at metaweb.com Wed Dec 5 21:12:36 2007 From: tsturge at metaweb.com (Tim Sturge) Date: Wed, 5 Dec 2007 16:12:36 -0500 (EST) Subject: [Developers] Merge two queries In-Reply-To: Message-ID: <11725611.21301196889156693.JavaMail.root@h00215> Hi Arthur, There is some internal documentation; unfortunately we haven't yet engaged a writer to include it into the MQL manual on freebase itself. Here is the internal documentation and a brief example: Tim --- /type/reflect ============= /type/reflect provides MQL with limited introspection facilities. In particular, if you have an object you can ask what properties it has without needing to know the types of the property in advance. Ideally, MQL would provide a single keyword (probably "any") which would contain all attached objects and values. However due to internal systematic limitations, you must ask for three distinct properties to find everything attached to the node. - /type/reflect/any_master This lists all master properties attached to the node. - /type/reflect/any_reverse This lists all reverse properties pointing to the node. - /type/reflect/any_value This lists all values attached to the node, of any type. It is common to combine /type/reflect/any_XXX with the "link" directive. This allows you to enquire what property has been located using the "master_property" default property of /type/link. Caveats: -------- Some of the properties of /type/object are specially implemented by the system and will not appear when the object is reflected on. In particular: - /type/object/key (incoming keys) - /type/namespace/keys (outgoing keys -- changed in bug 2353) - /type/object/id (generated path) - /type/object/guid (unique database identifier) - /type/object/timestamp (object creation timestamp) - /type/object/creator (user who created the object) are *not* reflectable. In fact, any attempt to reflect on /type/key or /type/id will fail as they are system generated properties - /type/object/type - /type/object/permission *are* reflectable, (in /type/reflect/any_master) as is - /type/object/name (in /type/reflect/any_value) All 3 of these are expected to remain reflectable. Examples: ========= U2 master properties: --------------------- { "id": "/wikipedia/en/U2", "/type/reflect/any_master": [ { "limit": 5, "id": null, "type": [], "name": null, "link": null } ] } Response: { "\/type\/reflect\/any_master" : [ { "id" : "#9202a8c04000641f8000000000000089", "link" : "\/type\/object\/permission", "name" : "Global Write Permission", "type" : [ "\/type\/permission" ] }, { "id" : "#9202a8c04000641f8000000000066c98", "link" : "\/common\/topic\/article", "name" : null, "type" : [ "\/common\/document" ] }, { "id" : "#9202a8c04000641f80000000011ae833", "link" : "\/type\/object\/type", "name" : "Musical Artist", "type" : [ "\/type\/type" ] }, { "id" : "#9202a8c04000641f8000000000000565", "link" : "\/type\/object\/type", "name" : "Topic", "type" : [ "\/type\/type" ] }, { "id" : "#9202a8c04000641f80000000011ae83f", "link" : "\/type\/object\/type", "name" : "Musical Group Member", "type" : [ "\/type\/type" ] } ], "id" : "\/wikipedia\/en\/U2" } U2 has permission Global Write Permission, an article and the types Musical Artist, Topic, and Musical Group Member. U2 reverse properties: ---------------------- { "id": "/wikipedia/en/U2", "/type/reflect/any_reverse": [ { "limit": 5, "id": null, "type": [], "name": null, "link": null } ] } Response: { "\/type\/reflect\/any_reverse" : [ { "id" : "#9202a8c04000641f8000000002f65165", "link" : "\/music\/album\/orig_artist", "name" : "Boy", "type" : [ "\/music\/album" ] }, { "id" : "#9202a8c04000641f8000000002f6578d", "link" : "\/music\/album\/orig_artist", "name" : "I Will Follow", "type" : [ "\/music\/album" ] }, { "id" : "#9202a8c04000641f8000000002f65799", "link" : "\/music\/album\/orig_artist", "name" : "I Will Follow", "type" : [ "\/music\/album" ] }, { "id" : "#9202a8c04000641f8000000002f65210", "link" : "\/music\/album\/orig_artist", "name" : "New Year's Day", "type" : [ "\/music\/album" ] }, { "id" : "#9202a8c04000641f8000000002f65e4a", "link" : "\/music\/album\/orig_artist", "name" : "Two Hearts Beat as One", "type" : [ "\/music\/album" ] } ], "id" : "\/wikipedia\/en\/U2" } Notice that the result of "link" is the master property (from album to artist). U2 Values: ---------- { "id": "/wikipedia/en/U2", "/type/reflect/any_value": [ { "limit": 5, "value": null, "type": null, "link" : null } ] } { "\/type\/reflect\/any_value" : [ { "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2 (groupe)" }, { "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" } ], "id" : "\/wikipedia\/en\/U2" } Here we see the names of U2. Note that they are in different languages, even though the lang is not part of the result. { "id": "/wikipedia/en/U2", "/type/reflect/any_value": [ { "limit": 5, "value": null, "type": "/type/text" , "lang": null, "link": null } ] } { "\/type\/reflect\/any_value" : [ { "lang" : "\/lang\/fr", "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2 (groupe)" }, { "lang" : "\/lang\/en", "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "lang" : "\/lang\/de", "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "lang" : "\/lang\/it", "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" }, { "lang" : "\/lang\/ja", "link" : "\/type\/object\/name", "type" : "\/type\/text", "value" : "U2" } ], "id" : "\/wikipedia\/en\/U2" } gives the languages, at the cost of restricting the output to values of /type/text only. ----- Original Message ----- From: "Arthur van Hoff" To: "For discussions about MQL, Freebase API and apps built on Freebase" Sent: Wednesday, December 5, 2007 8:49:34 AM (GMT-0800) America/Los_Angeles Subject: Re: [Developers] Merge two queries Is there an explanation of /type/reflect/any_reverse? The best I can find is this: http://www.freebase.com/view/guid/9202a8c04000641f80000000041ea213 -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Sebastian Kurt Sent: Wednesday, December 05, 2007 4:34 AM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] Merge two queries Thanks for your help, but it is not what i was looking for. Perhaps not exactly defined by me. I will try again: I query for ID's belonging to a { "someids":{ "query":[{ "name":null, "name~=":"", "type":[{ "id":null, }] }] } } after that (extracting IDs with PHP), I query foreach ID what CATEGORY it is in and whats its name: { "category":{ "query":[{ "/type/type/domain":{ "/type/reflect/any_reverse":[{ "name":null, "type":"/freebase/domain_category" }], "name":null }, "id":"myIdForKeyword", "name":null }] } } Now the question is, if it is possible to merge both: "Query for CATEGORIES (and name of given IDs) of a given " Examplequery for "id" == "/location/country", { "category" : { "query" : [ { "/type/type/domain" : { "/type/reflect/any_reverse" : [ { "name" : null, "type" : "/freebase/domain_category" } ], "name" : null }, "id" : "/location/country", "name" : null } ] } } John Giannandrea schrieb: >> Sebastian Kurt wrote: >>> What should it do? >>> "[1] answering ID an DOMAIN of , ID is used in [2] (as >>> myIdForKeyword) to ask for CATEGORY of it" >>> > > > it wasnt clear to me if you are trying to find a domain or a type. > Here is an example of constraining both the domain name and the type > name and getting the enclosing category. You can remove the > constraints you dont want > -jg > > { > "query" : [ > { > "domains" : { > "name" : null, > "name~=" : "film", > "type" : "/type/domain", > "types" : [ > { > "name" : null, > "name~=" : "director" > } > ] > }, > "name" : null, > "type" : "/freebase/domain_category" > } > ] > } > > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From michael_scott at mac.com Wed Dec 5 21:19:31 2007 From: michael_scott at mac.com (Michael Scott) Date: Wed, 5 Dec 2007 21:19:31 +0000 Subject: [Developers] Merge two queries In-Reply-To: <11725611.21301196889156693.JavaMail.root@h00215> References: <11725611.21301196889156693.JavaMail.root@h00215> Message-ID: <547179DE-0602-45A0-8A36-DF85496A6025@mac.com> On 5 Dec 2007, at 21:12, Tim Sturge wrote: > unfortunately we haven't > yet engaged a writer isn't that what wikis are for From sebastian.wain at nektra.com Wed Dec 5 21:36:22 2007 From: sebastian.wain at nektra.com (Sebastian R. Wain) Date: Wed, 05 Dec 2007 18:36:22 -0300 Subject: [Developers] FF extension for testing multiple Freebase accounts on one Firefox instance Message-ID: <475719D6.2080608@nektra.com> Hi, This announce is mainly for Freebase internal developers for testing different FB account simultaneously. We have release a new version of our free Firefox extension Cookiepie and it seems to run properly on Freebase. The extension can be downloaded from here: http://www.nektra.com/oss/firefox/extensions/cookiepie/ I Hope this extension will help to test many users profiles in one single Firefox instance instead of running multiple processes of different browsers for handling cookies. Sebastian -- Sebastian R. Wain Nektra Advanced Computing http://www.nektra.com From jeff at metaweb.com Thu Dec 6 19:23:49 2007 From: jeff at metaweb.com (Jeff Prucher) Date: Thu, 6 Dec 2007 11:23:49 -0800 Subject: [Developers] Announcement of upcoming schema changes Message-ID: <000b01c8383d$8775e470$bc01a8c0@p4> Unless there is serious objection, we will be making the following changes to existing types next week. Please let us know if you have any objections to or questions about these changes. The specific changes, and rationale for them, are provided below. We hope to keep such changes to a minimum, but as we have moved through alpha, a variety of issues with some schemas have been discovered, and we are hoping to resolve as many of them as possible before we reach beta. All such changes will be announced on these lists, and we will take any concerns or objections from the community into consideration before making them. 1) Government domain The type "US Political Office Held" (/government/us_political_office_held) will be deleted. Current instances will be migrated to "Government office held" (/government/government_position_held). The following types have been deprecated and will be removed (spellings of key names are 'sic'): * /government/us_cogressional_commitee_session * /government/us_legistlative_session * /government/us_congress_commitee_assignment * /government/committee_role This is part of an ongoing process to make the types in the government domain work for all government types, rather than requiring distinct types for every country (which is how they were originally set up). These changes are the result of the process announced here in October. There may be one or two additional sets of changes required before the process is complete. 2) Theater domain The following types have been deprecated and will be removed: * /theater/theater_award * /theater/theater_award_honor * /theater/theater_award_winner * /theater/theater_award_nomination * /theater/theater_award_nominee The following properties have been deprecated and will be removed: * /theater/theater_production/awards_won * /theater/theater_production/award_nominations * /theater/play/awards_won * /theater/play/award_nominations These types and properties are being deleted because they have been superseded by the types in the "award" domain. There is currently no data in these types, so we expect that this will have a minimal impact. Jeff Prucher, on behalf of the Data Architecture team Metaweb, Inc. From AVH at zing.net Sun Dec 9 06:17:28 2007 From: AVH at zing.net (Arthur van Hoff) Date: Sat, 8 Dec 2007 22:17:28 -0800 Subject: [Developers] topic search issue Message-ID: Hi, I often find that the pop-up list of topics is too short (it contains only 10 items). The item I want is somewhere below the bottom of the list. This makes some operations impossible. Is there a work around? For example there are two topics named "audio/mpeg" of type "/type/media_format". I can't merge one with the other because the correct one is off the chart. Why does one show up and not the other? By the way, I find that when I know the exact name of a topic (as is the case here) the relevance ordering is very annoying. I would argue that a topic which is an exact match should be favored over topics with other names. Have fun, Arthur van Hoff ___________________________________________ Arthur van Hoff, Dell-ZING, CTO Software and Services. W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071208/19b00668/attachment.htm From jg at metaweb.com Sun Dec 9 07:01:44 2007 From: jg at metaweb.com (John Giannandrea) Date: Sat, 8 Dec 2007 23:01:44 -0800 Subject: [Developers] topic search issue In-Reply-To: References: Message-ID: <0AE9D1AD-17A1-4F7F-8FF6-6AE97572037D@metaweb.com> I think the problem here is that /media_type/audio/mpeg is not actually a topic. I have asked that it be merged with /guid/ 9202a8c04000641f800000000520057a -jg On Dec 8, 2007, at 10:17 PM, Arthur van Hoff wrote: > Hi, > > I often find that the pop-up list of topics is too short (it > contains only 10 items). The item I want is somewhere below the > bottom of the list. This makes some operations impossible. Is there > a work around? > > For example there are two topics named ?audio/mpeg? of type ?/type/ > media_format?. I can?t merge one with the other because the correct > one is off the chart. Why does one show up and not the other? > > By the way, I find that when I know the exact name of a topic (as is > the case here) the relevance ordering is very annoying. I would > argue that a topic which is an exact match should be favored over > topics with other names. > > Have fun, > > Arthur van Hoff > ___________________________________________ > Arthur van Hoff, Dell-ZING, CTO Software and Services. > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From jg at metaweb.com Sun Dec 9 07:04:21 2007 From: jg at metaweb.com (John Giannandrea) Date: Sat, 8 Dec 2007 23:04:21 -0800 Subject: [Developers] topic search issue In-Reply-To: <0AE9D1AD-17A1-4F7F-8FF6-6AE97572037D@metaweb.com> References: <0AE9D1AD-17A1-4F7F-8FF6-6AE97572037D@metaweb.com> Message-ID: <64AD4913-FC8F-496E-B87A-0504036562EB@metaweb.com> Ignore that. It is a topic, its just not behaving like one in the UI. I will file a bug. -jg John Giannandrea wrote: > I think the problem here is that /media_type/audio/mpeg is not > actually a topic. From kurt at inf.fu-berlin.de Sun Dec 9 22:33:55 2007 From: kurt at inf.fu-berlin.de (Sebastian Kurt) Date: Sun, 09 Dec 2007 23:33:55 +0100 Subject: [Developers] Difference between 2 querys Message-ID: <475C6D53.2000007@inf.fu-berlin.de> Good Evening or what time it is where you are right now, I got two querys, both querying for "Art" #1 gets a timeout, #2 gets many answers #1 http://pastebin.com/m6ae0dbd9 #2 http://pastebin.com/m7debf255 my solution #1 querys for /type/domain and #2 for names. But I don't know who to combine it. it times out because there is no category named "Art" without "s" and the many results are topics, i guess? cheers Sebastian Querys: #1 { "someids" : { "query" : [ { "domains" : [ { "limit" : 1, "name" : null, "type" : "/type/domain", "types" : [ { "instance" : [ { "limit" : 1, "name" : null, "name~=" : "Art" } ], "limit" : 1 } ] } ], "id" : null, "name" : null, "type" : "/freebase/domain_category" } ] } } #2 { "qname" : { "query" : [ { "name" : null, "name~=" : "Art", "type" : [ { "id" : null, "name" : null } ] } ] } } -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de From kurt at metaweb.com Mon Dec 10 16:50:34 2007 From: kurt at metaweb.com (Kurt Bollacker) Date: Mon, 10 Dec 2007 16:50:34 +0000 Subject: [Developers] Difference between 2 querys In-Reply-To: <475C6D53.2000007@inf.fu-berlin.de> References: <475C6D53.2000007@inf.fu-berlin.de> Message-ID: <20071210165034.GC32247@metaweb.com> On Sun, Dec 09, 2007 at 11:33:55PM +0100, Sebastian Kurt wrote: > Good Evening or what time it is where you are right now, > > I got two querys, both querying for "Art" > #1 gets a timeout, #2 gets many answers I'm not sure what you are trying to do. Query #2 gets topics with the string "Art" in the name. Because you did not specify how many (using "limit":XXX), 100 are returned. You can use cursors to get the rest. Query #1 seems to do almost the same thing but organized by domain category/domain. Because cursors are only allowed at the topic of a query, this form is less likely to get you what you want. If you just want topics with "Art" in the name, I suggest sticking with query #2. Kurt :-) > #1 http://pastebin.com/m6ae0dbd9 > #2 http://pastebin.com/m7debf255 > > my solution #1 querys for /type/domain and #2 for names. But I don't > know who to combine it. it times out because there is no category named > "Art" without "s" and the many results are topics, i guess? > > cheers > Sebastian > > Querys: > #1 > { > "someids" : { > "query" : [ > { > "domains" : [ > { > "limit" : 1, > "name" : null, > "type" : "/type/domain", > "types" : [ > { > "instance" : [ > { > "limit" : 1, > "name" : null, > "name~=" : "Art" > } > ], > "limit" : 1 > } > ] > } > ], > "id" : null, > "name" : null, > "type" : "/freebase/domain_category" > } > ] > } > } > #2 > { > "qname" : { > "query" : [ > { > "name" : null, > "name~=" : "Art", > "type" : [ > { > "id" : null, > "name" : null > } > ] > } > ] > } > } > -- > mailto:kurt at inf.fu-berlin.de > 0179 7923088 > http://vIdentity.de > http://skurt.de > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From kurt at inf.fu-berlin.de Mon Dec 10 17:15:08 2007 From: kurt at inf.fu-berlin.de (Sebastian Kurt) Date: Mon, 10 Dec 2007 18:15:08 +0100 Subject: [Developers] Difference between 2 querys In-Reply-To: <20071210165034.GC32247@metaweb.com> References: <475C6D53.2000007@inf.fu-berlin.de> <20071210165034.GC32247@metaweb.com> Message-ID: <475D741C.4000304@inf.fu-berlin.de> What I want is, category/domain of topics with "Art" in the name. Sebastian Kurt :-) Kurt Bollacker schrieb: > On Sun, Dec 09, 2007 at 11:33:55PM +0100, Sebastian Kurt wrote: >> Good Evening or what time it is where you are right now, >> >> I got two querys, both querying for "Art" >> #1 gets a timeout, #2 gets many answers > > I'm not sure what you are trying to do. Query #2 gets topics with the > string "Art" in the name. Because you did not specify how many (using > "limit":XXX), 100 are returned. You can use cursors to get the rest. > > Query #1 seems to do almost the same thing but organized by domain > category/domain. Because cursors are only allowed at the topic of a > query, this form is less likely to get you what you want. If you just > want topics with "Art" in the name, I suggest sticking with query #2. > > > Kurt :-) > > >> #1 http://pastebin.com/m6ae0dbd9 >> #2 http://pastebin.com/m7debf255 >> >> my solution #1 querys for /type/domain and #2 for names. But I don't >> know who to combine it. it times out because there is no category named >> "Art" without "s" and the many results are topics, i guess? >> >> cheers >> Sebastian >> >> Querys: >> #1 >> { >> "someids" : { >> "query" : [ >> { >> "domains" : [ >> { >> "limit" : 1, >> "name" : null, >> "type" : "/type/domain", >> "types" : [ >> { >> "instance" : [ >> { >> "limit" : 1, >> "name" : null, >> "name~=" : "Art" >> } >> ], >> "limit" : 1 >> } >> ] >> } >> ], >> "id" : null, >> "name" : null, >> "type" : "/freebase/domain_category" >> } >> ] >> } >> } >> #2 >> { >> "qname" : { >> "query" : [ >> { >> "name" : null, >> "name~=" : "Art", >> "type" : [ >> { >> "id" : null, >> "name" : null >> } >> ] >> } >> ] >> } >> } >> -- >> mailto:kurt at inf.fu-berlin.de >> 0179 7923088 >> http://vIdentity.de >> http://skurt.de >> _______________________________________________ >> Developers mailing list >> Developers at freebase.com >> http://lists.freebase.com/mailman/listinfo/developers > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers -- mailto:kurt at inf.fu-berlin.de 0179 7923088 http://vIdentity.de http://skurt.de From faye at metaweb.com Mon Dec 10 19:23:36 2007 From: faye at metaweb.com (Faye Li) Date: Mon, 10 Dec 2007 11:23:36 -0800 Subject: [Developers] topic search issue In-Reply-To: References: Message-ID: <475D9238.2030703@metaweb.com> Hi Arthur, Since one of the two topics you'd like to merge appears in autocomplete, a work around is to browse to the topic you don't see in autocomplete, and mark it to merge with the topic that does come up in autocomplete. Relevance logic is complex and has to take into consideration the fact that 1) topic names can be arbitrary in Freebase, can change, and are often poor indications for/summaries of the topics themselves, 2) the best results are not always the exact matches, 3) what may be the desired result for one user must be just noise for another, and so on and so forth. That said, relevance is relatively new and we continue to improve upon it. And bear with me if it sounds like canned words, but your feedback is valuable to us, and I mean it. This particular example may be a bug; I'll follow up on it. Oh, for more tips with using search and autocomplete, check out my blog entry from a while back: "Tips for Finding a Needle in a Data Haystack" (http://blog.freebase.com/?p=52). -- Faye Arthur van Hoff wrote: > > Hi, > > I often find that the pop-up list of topics is too short (it contains > only 10 items). The item I want is somewhere below the bottom of the > list. This makes some operations impossible. Is there a work around? > > For example there are two topics named ?audio/mpeg? of type > ?/type/media_format?. I can?t merge one with the other because the > correct one is off the chart. Why does one show up and not the other? > > By the way, I find that when I know the exact name of a topic (as is > the case here) the relevance ordering is very annoying. I would argue > that a topic which is an exact match should be favored over topics > with other names. > > Have fun, > > Arthur van Hoff > > ___________________________________________ > > Arthur van Hoff, Dell-ZING, CTO Software and Services. > > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > ------------------------------------------------------------------------ > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > From AVH at zing.net Mon Dec 10 19:52:32 2007 From: AVH at zing.net (Arthur van Hoff) Date: Mon, 10 Dec 2007 11:52:32 -0800 Subject: [Developers] topic search issue In-Reply-To: <475D9238.2030703@metaweb.com> References: <475D9238.2030703@metaweb.com> Message-ID: Hi Faye, I my application I added a "more..." button at the bottom of the auto complete list. That way you can usually find the topic you want, even if it is not listed in the top 10. I would recommend that you guys do the same thing... -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Faye Li Sent: Monday, December 10, 2007 11:24 AM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] topic search issue Hi Arthur, Since one of the two topics you'd like to merge appears in autocomplete, a work around is to browse to the topic you don't see in autocomplete, and mark it to merge with the topic that does come up in autocomplete. Relevance logic is complex and has to take into consideration the fact that 1) topic names can be arbitrary in Freebase, can change, and are often poor indications for/summaries of the topics themselves, 2) the best results are not always the exact matches, 3) what may be the desired result for one user must be just noise for another, and so on and so forth. That said, relevance is relatively new and we continue to improve upon it. And bear with me if it sounds like canned words, but your feedback is valuable to us, and I mean it. This particular example may be a bug; I'll follow up on it. Oh, for more tips with using search and autocomplete, check out my blog entry from a while back: "Tips for Finding a Needle in a Data Haystack" (http://blog.freebase.com/?p=52). -- Faye Arthur van Hoff wrote: > > Hi, > > I often find that the pop-up list of topics is too short (it contains > only 10 items). The item I want is somewhere below the bottom of the > list. This makes some operations impossible. Is there a work around? > > For example there are two topics named "audio/mpeg" of type > "/type/media_format". I can't merge one with the other because the > correct one is off the chart. Why does one show up and not the other? > > By the way, I find that when I know the exact name of a topic (as is > the case here) the relevance ordering is very annoying. I would argue > that a topic which is an exact match should be favored over topics > with other names. > > Have fun, > > Arthur van Hoff > > ___________________________________________ > > Arthur van Hoff, Dell-ZING, CTO Software and Services. > > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > ------------------------------------------------------------------------ > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From sm at metaweb.com Mon Dec 10 22:14:57 2007 From: sm at metaweb.com (Scott Meyer) Date: Mon, 10 Dec 2007 14:14:57 -0800 Subject: [Developers] Difference between 2 querys In-Reply-To: <475D741C.4000304@inf.fu-berlin.de> References: <475C6D53.2000007@inf.fu-berlin.de> <20071210165034.GC32247@metaweb.com> <475D741C.4000304@inf.fu-berlin.de> Message-ID: <475DBA61.3040607@metaweb.com> Sebastian Kurt wrote: > What I want is, category/domain of topics with "Art" in the name. How's this: { "query" : [ { "name" : null, "name~=" : "art*", "type" : [], "type|=" : [ "/freebase/domain_category", "/type/domain" ] } ] } |= is explained in section 3.2.20.1 in: http://www.freebase.com/view/9202a8c04000641f800000000544e13e#id2616378 -Scott From duck at kronkltd.net Wed Dec 12 14:47:56 2007 From: duck at kronkltd.net (Daniel Renfer) Date: Wed, 12 Dec 2007 09:47:56 -0500 Subject: [Developers] Moving types to a different domain. Message-ID: <10743d6d0712120647k5dd5a5c2o3eea50dd51977e94@mail.gmail.com> Hello, I have created a few type, and I would like to now try to organize them into domains. Is there a way that I can move one of the types I've created into a domain that I've created without having to re-create that type in the new domain? I'm sure the Freebase Devs have a way to do this, but I can't find the way to do it myself. Thank You, Daniel E. Renfer http://kronkltd.net/ Freebase User: duck1123 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/322c81c1/attachment.htm From spatial.db at gmail.com Wed Dec 12 16:00:21 2007 From: spatial.db at gmail.com (Ed Laurent) Date: Wed, 12 Dec 2007 11:00:21 -0500 Subject: [Developers] Moving types to a different domain. In-Reply-To: <10743d6d0712120647k5dd5a5c2o3eea50dd51977e94@mail.gmail.com> References: <10743d6d0712120647k5dd5a5c2o3eea50dd51977e94@mail.gmail.com> Message-ID: <80b889990712120800y4bf4c9c7pb1b31538c8849087@mail.gmail.com> I made the same request on one of the discussions recently. Danm offered to move them for me. He also just posted this discussion a few hours ago: Discussions on Domain URL http://www.freebase.com/view/discuss/guid/9202a8c04000641f8000000006acda4e#/guid/9202a8c04000641f8000000006ad3311 -Ed On Dec 12, 2007 9:47 AM, Daniel Renfer wrote: > Hello, > > I have created a few type, and I would like to now try to organize them into > domains. Is there a way that I can move one of the types I've created into a > domain that I've created without having to re-create that type in the new > domain? I'm sure the Freebase Devs have a way to do this, but I can't find > the way to do it myself. > > Thank You, > Daniel E. Renfer > http://kronkltd.net/ > Freebase User: duck1123 > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From duck at kronkltd.net Wed Dec 12 16:17:13 2007 From: duck at kronkltd.net (Daniel Renfer) Date: Wed, 12 Dec 2007 11:17:13 -0500 Subject: [Developers] Moving types to a different domain. In-Reply-To: <80b889990712120800y4bf4c9c7pb1b31538c8849087@mail.gmail.com> References: <10743d6d0712120647k5dd5a5c2o3eea50dd51977e94@mail.gmail.com> <80b889990712120800y4bf4c9c7pb1b31538c8849087@mail.gmail.com> Message-ID: <10743d6d0712120817i7cd10d5av8f3a60b478cb8486@mail.gmail.com> Oh well, I guess in the mean time I'll have to think carefully about what domain a new type should be in before I create it. This can sometimes be hard when you don't know if you'll need 2 types, or 12 until you really start to fill out the model. On 12/12/07, Ed Laurent wrote: > > I made the same request on one of the discussions recently. Danm > offered to move them for me. He also just posted this discussion a few > hours ago: > > Discussions on Domain URL > > http://www.freebase.com/view/discuss/guid/9202a8c04000641f8000000006acda4e#/guid/9202a8c04000641f8000000006ad3311 > > -Ed > > On Dec 12, 2007 9:47 AM, Daniel Renfer wrote: > > Hello, > > > > I have created a few type, and I would like to now try to organize them > into > > domains. Is there a way that I can move one of the types I've created > into a > > domain that I've created without having to re-create that type in the > new > > domain? I'm sure the Freebase Devs have a way to do this, but I can't > find > > the way to do it myself. > > > > Thank You, > > Daniel E. Renfer > > http://kronkltd.net/ > > Freebase User: duck1123 > > > > _______________________________________________ > > Developers mailing list > > Developers at freebase.com > > http://lists.freebase.com/mailman/listinfo/developers > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/8b096159/attachment.htm From dmilbrath at metaweb.com Wed Dec 12 17:16:27 2007 From: dmilbrath at metaweb.com (Dan Milbrath) Date: Wed, 12 Dec 2007 12:16:27 -0500 (EST) Subject: [Developers] Moving types to a different domain. In-Reply-To: <10743d6d0712120817i7cd10d5av8f3a60b478cb8486@mail.gmail.com> Message-ID: <17040034.74751197479787755.JavaMail.root@h00215> Moving types between domains and modifying domain names and keys for personal domains are definitely features we want to add to the main interface. Requests like this help us prioritize the features to develop. Thanks! - Dan (danm) ----- Original Message ----- From: "Daniel Renfer" To: "For discussions about MQL, Freebase API and apps built on Freebase" Sent: Wednesday, December 12, 2007 8:17:13 AM (GMT-0800) America/Los_Angeles Subject: Re: [Developers] Moving types to a different domain. _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From AVH at zing.net Wed Dec 12 22:51:23 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 12 Dec 2007 14:51:23 -0800 Subject: [Developers] scaling images Message-ID: Hi, Is there any way to request an image that is scaled to a size other than the raw image or the thumbnail? Ideally we would like to specify a maxwidth and maxheight and have the content service scale the image to fit without changing the aspect ratio. Thanks. ___________________________________________ Arthur van Hoff, Dell-ZING, CTO Software and Services. W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/05dbd769/attachment-0001.htm From alecf at metaweb.com Wed Dec 12 23:18:56 2007 From: alecf at metaweb.com (Alec Flett) Date: Wed, 12 Dec 2007 15:18:56 -0800 Subject: [Developers] scaling images In-Reply-To: References: Message-ID: <47606C60.70102@metaweb.com> That's exactly what the image thumbnailing code does - it defaults to 30 or 50 or so, but you can specify any size... http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000000049a9a09?maxheight=120&maxwidth=120 http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000000049a9a09?maxheight=50 http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000000049a9a09?maxwidth=200 Alec Arthur van Hoff wrote: > > Hi, > > > > Is there any way to request an image that is scaled to a size other > than the raw image or the thumbnail? Ideally we would like to specify > a maxwidth and maxheight and have the content service scale the image > to fit without changing the aspect ratio. > > > > Thanks. > > > > ___________________________________________ > > Arthur van Hoff, Dell-ZING, CTO Software and Services. > > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/614a42bd/attachment.htm From AVH at zing.net Wed Dec 12 23:52:18 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 12 Dec 2007 15:52:18 -0800 Subject: [Developers] scaling images In-Reply-To: <47606C60.70102@metaweb.com> References: <47606C60.70102@metaweb.com> Message-ID: Very cool. Thanks. From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Alec Flett Sent: Wednesday, December 12, 2007 3:19 PM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] scaling images That's exactly what the image thumbnailing code does - it defaults to 30 or 50 or so, but you can specify any size... http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000 000049a9a09?maxheight=120&maxwidth=120 http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000 000049a9a09?maxheight=50 http://www.freebase.com/api/trans/image_thumb/guid/9202a8c04000641f80000 000049a9a09?maxwidth=200 Alec Arthur van Hoff wrote: Hi, Is there any way to request an image that is scaled to a size other than the raw image or the thumbnail? Ideally we would like to specify a maxwidth and maxheight and have the content service scale the image to fit without changing the aspect ratio. Thanks. ___________________________________________ Arthur van Hoff, Dell-ZING, CTO Software and Services. W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 ________________________________ _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/f3cddce8/attachment.htm From AVH at zing.net Thu Dec 13 00:51:28 2007 From: AVH at zing.net (Arthur van Hoff) Date: Wed, 12 Dec 2007 16:51:28 -0800 Subject: [Developers] logout? Message-ID: Hi, What is the correct way to logout from freebase? Section 6.1 of the documentation only discusses how to login. http://www.freebase.com/view/9202a8c04000641f800000000544e10c#id2628043 Thanks. ___________________________________________ Arthur van Hoff, Dell-ZING, CTO Software and Services. W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/c6554a9a/attachment.htm From aseem at metaweb.com Thu Dec 13 01:11:35 2007 From: aseem at metaweb.com (Aseem Mohanty) Date: Wed, 12 Dec 2007 17:11:35 -0800 Subject: [Developers] logout? In-Reply-To: References: Message-ID: <476086C7.8080507@metaweb.com> I believe you can use the logout service: http://www.freebase.com/api/account/logout to do so. However if you have a custom app, simply blowing away your cookies would have the same effect. HTH AM Arthur van Hoff wrote: > Hi, > > > > What is the correct way to logout from freebase? > > Section 6.1 of the documentation only discusses how to login. > > > > http://www.freebase.com/view/9202a8c04000641f800000000544e10c#id2628043 > > > > Thanks. > > > > ___________________________________________ > > Arthur van Hoff, Dell-ZING, CTO Software and Services. > > W: 650-267-2413, F: 650-267-2498, M: 650-283-0842 > > > > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Developers mailing list > Developers at freebase.com > http://lists.freebase.com/mailman/listinfo/developers From duck at kronkltd.net Thu Dec 13 03:16:02 2007 From: duck at kronkltd.net (Daniel Renfer) Date: Wed, 12 Dec 2007 22:16:02 -0500 Subject: [Developers] Searching for missing data Message-ID: <10743d6d0712121916k11722edfi22fad304f5ecf32e@mail.gmail.com> I have been looking for a way to do this, and have so far been unsuccessful. Is there any way to do a search for topics of a given type that do not have anything set for a given property? For instance: The list of People that do not have a Gender property. It looks like this may be a result of the limitation of MQL to do NOT queries, but I may just be missing something. Optimally, it would be cool to have a way to get a relation count, so for a given topic's property we could find out how many relations it has. If this were the case, I would just need to search where //count = 0 Any workarounds to this? Or do I need to enter this as a feature request? Daniel E. Renfer http://kronkltd.net/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071212/1f3a8266/attachment-0001.htm From skud at infotrope.net Thu Dec 13 03:38:37 2007 From: skud at infotrope.net (Kirrily Robert) Date: Thu, 13 Dec 2007 14:38:37 +1100 Subject: [Developers] logout? In-Reply-To: References: Message-ID: On Dec 13, 2007 11:51 AM, Arthur van Hoff wrote: > > What is the correct way to logout from freebase? > > Section 6.1 of the documentation only discusses how to login. > http://www.freebase.com/view/9202a8c04000641f800000000544e10c#id2628043 I'd guess the right thing to do is delete the cookie it gave you. K. -- Kirrily Robert skud at infotrope.net http://infotrope.net From jg at metaweb.com Thu Dec 13 03:58:05 2007 From: jg at metaweb.com (John Giannandrea) Date: Wed, 12 Dec 2007 19:58:05 -0800 Subject: [Developers] Searching for missing data In-Reply-To: <10743d6d0712121916k11722edfi22fad304f5ecf32e@mail.gmail.com> References: <10743d6d0712121916k11722edfi22fad304f5ecf32e@mail.gmail.com> Message-ID: <16F05F37-D136-4A35-8610-8807EA8A5752@metaweb.com> Daniel Renfer wrote: > I have been looking for a way to do this, and have so far been > unsuccessful. Is there any way to do a search for topics of a given > type that do not have anything set for a given property? For > instance: The list of People that do not have a Gender property. yes, you can use the (under documented) forbidden feature to do something like this: "query" : [ { "gender" : { "id" : null, "optional" : "forbidden" }, "id" : null, "name" : null, "type" : "/people/person" } ] counting also works, like this: "query" : [ { "id" : null, "name" : null, "parents" : { "optional" : true, "return" : "count" }, "type" : "/people/person" } unfortunately you cant currently sort on the count or constrain it further. -jg From AVH at zing.net Thu Dec 13 15:49:08 2007 From: AVH at zing.net (Arthur van Hoff) Date: Thu, 13 Dec 2007 07:49:08 -0800 Subject: [Developers] logout? In-Reply-To: References: Message-ID: Thanks. The /api/account/logout service seems to do the trick for me. It would be good to add that to the documentation. Another thing to add to the documentation would be a small table with all services and their purpose. I keep discovering more! -----Original Message----- From: developers-bounces at freebase.com [mailto:developers-bounces at freebase.com] On Behalf Of Kirrily Robert Sent: Wednesday, December 12, 2007 7:39 PM To: For discussions about MQL,Freebase API and apps built on Freebase Subject: Re: [Developers] logout? On Dec 13, 2007 11:51 AM, Arthur van Hoff wrote: > > What is the correct way to logout from freebase? > > Section 6.1 of the documentation only discusses how to login. > http://www.freebase.com/view/9202a8c04000641f800000000544e10c#id2628043 I'd guess the right thing to do is delete the cookie it gave you. K. -- Kirrily Robert skud at infotrope.net http://infotrope.net _______________________________________________ Developers mailing list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/developers From jeff at metaweb.com Fri Dec 14 00:42:11 2007 From: jeff at metaweb.com (Jeff Prucher) Date: Thu, 13 Dec 2007 16:42:11 -0800 Subject: [Developers] Proposed refactoring in the publishing domain Message-ID: <005101c83dea$29d14000$bc01a8c0@p4> There have been several requests made, over the last few months, to allow for more flexibility of attributing authorship and other contributions to written works, and also to add various properties to a number of types in the publishing domain. Toward this end, I've created a new type, "written work" that will be an included type on all the various types that represent written works -- book, short story, poem, short non-fiction, review, and translation. The new type is currently on sandbox. I'd appreciate it if anyone who is interested could take a look at it and let me know what you think. Please look before Monday evening (Pacific Time), since sandbox will be refreshed then. http://sandbox.freebase.com/view/schema/book/written_work I've filled out the contents of the April 2007 issue of the Magazine of Fantasy and Science Fiction as an example. Click the various items in the contents property to see the type in action. http://sandbox.freebase.com/view/guid/9202a8c04000641f800000000514f951 One feature is to treat authorship (or similar form of creative contribution) as a compound value type which will allow for multiple types of contribution to be recorded in the same property and for all the disparate types of works to be listed together on the contributors' pages. Currently, author and editor are treated as separate properties; having a single property will allow Freebase to reconcile more easily to other data-sources, which usually store these in the same field. This will also allow us to record books where the illustrator is tied to the book itself, rather to individual editions (as in most children's picture books, but as opposed to, say, an illustrated edition of Huckleberry Finn). See http://sandbox.freebase.com/view/guid/9202a8c04000641f8000000006c3521e and http://sandbox.freebase.com/view/make_way_for_ducklings for some further examples. Another of the new type is that a number of other properties can usefully be shared by all types of written works, rather than being distributed onto each. These properties are: original language, date written, copyright date, date of first publication, and online versions. Others will probably arise, but this seems like a good set to start with. (I'm copying the developers list in case anyone is writing an application using any of the publishing domain types.) Thanks in advance, Jeff Prucher Type Librarian & Ontologist Metaweb From duck at kronkltd.net Fri Dec 14 01:41:00 2007 From: duck at kronkltd.net (Daniel Renfer) Date: Thu, 13 Dec 2007 20:41:00 -0500 Subject: [Developers] [Data-modeling] Proposed refactoring in the publishing domain In-Reply-To: <005101c83dea$29d14000$bc01a8c0@p4> References: <005101c83dea$29d14000$bc01a8c0@p4> Message-ID: <10743d6d0712131741o1fbe9bd3tb2c43effa15f6a12@mail.gmail.com> While this will make it slightly harder to find information for the simple case (author of a book) I think this will make it much easier to model the more complex types of contributions to a published work. You should consider replacing Magazine's Cover Artist with a Cover Contributor. I'm sure there are a few other types where this could replace multiple properties. (ie. Comic Books) On 12/13/07, Jeff Prucher wrote: > > There have been several requests made, over the last few months, to allow > for more flexibility of attributing authorship and other contributions to > written works, and also to add various properties to a number of types in > the publishing domain. Toward this end, I've created a new type, "written > work" that will be an included type on all the various types that > represent > written works -- book, short story, poem, short non-fiction, review, and > translation. > > The new type is currently on sandbox. I'd appreciate it if anyone who is > interested could take a look at it and let me know what you think. Please > look before Monday evening (Pacific Time), since sandbox will be refreshed > then. > http://sandbox.freebase.com/view/schema/book/written_work > > I've filled out the contents of the April 2007 issue of the Magazine of > Fantasy and Science Fiction as an example. Click the various items in the > contents property to see the type in action. > http://sandbox.freebase.com/view/guid/9202a8c04000641f800000000514f951 > > One feature is to treat authorship (or similar form of creative > contribution) as a compound value type which will allow for multiple types > of contribution to be recorded in the same property and for all the > disparate types of works to be listed together on the contributors' pages. > Currently, author and editor are treated as separate properties; having a > single property will allow Freebase to reconcile more easily to other > data-sources, which usually store these in the same field. This will also > allow us to record books where the illustrator is tied to the book itself, > rather to individual editions (as in most children's picture books, but as > opposed to, say, an illustrated edition of Huckleberry Finn). > See http://sandbox.freebase.com/view/guid/9202a8c04000641f8000000006c3521e > and http://sandbox.freebase.com/view/make_way_for_ducklings for some > further > examples. > > Another of the new type is that a number of other properties can usefully > be > shared by all types of written works, rather than being distributed onto > each. These properties are: original language, date written, copyright > date, > date of first publication, and online versions. Others will probably > arise, > but this seems like a good set to start with. > > (I'm copying the developers list in case anyone is writing an application > using any of the publishing domain types.) > > Thanks in advance, > Jeff Prucher > Type Librarian & Ontologist > Metaweb > > _______________________________________________ > Data-modeling mailing list > Data-modeling at freebase.com > http://lists.freebase.com/mailman/listinfo/data-modeling > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071213/b635106c/attachment.htm From faye at metaweb.com Fri Dec 14 02:12:24 2007 From: faye at metaweb.com (Faye Li) Date: Thu, 13 Dec 2007 18:12:24 -0800 Subject: [Developers] [Data-modeling] Proposed refactoring in the publishing domain In-Reply-To: <005101c83dea$29d14000$bc01a8c0@p4> References: <005101c83dea$29d14000$bc01a8c0@p4> Message-ID: <4761E688.5080105@metaweb.com> Is Written Work going to be a co-type for Published Work as well? I'd like to see the Authorship type solve the problem of modeling pen names and pseudonyms. For example, "Quidditch Through the Ages" is published under the author name "Kennilworthy Whisp", and "Fantasic Beasts & Where to Find Them" is published under the author name "Newt Scamander". But of course it was J. K. Rowling who wrote both books and holds the copyright for both. Ideally (i.e. a "nice to have") it would allow users to specify this information at the edition level -- as writers, completely unaware of data modeling implications, sometimes change their print names between editions. The result is that a book previously published anonymously or under a pseudonym may bear the author's real name in a later edition. -- Faye Jeff Prucher wrote: > There have been several requests made, over the last few months, to allow > for more flexibility of attributing authorship and other contributions to > written works, and also to add various properties to a number of types in > the publishing domain. Toward this end, I've created a new type, "written > work" that will be an included type on all the various types that represent > written works -- book, short story, poem, short non-fiction, review, and > translation. > > The new type is currently on sandbox. I'd appreciate it if anyone who is > interested could take a look at it and let me know what you think. Please > look before Monday evening (Pacific Time), since sandbox will be refreshed > then. > http://sandbox.freebase.com/view/schema/book/written_work > > I've filled out the contents of the April 2007 issue of the Magazine of > Fantasy and Science Fiction as an example. Click the various items in the > contents property to see the type in action. > http://sandbox.freebase.com/view/guid/9202a8c04000641f800000000514f951 > > One feature is to treat authorship (or similar form of creative > contribution) as a compound value type which will allow for multiple types > of contribution to be recorded in the same property and for all the > disparate types of works to be listed together on the contributors' pages. > Currently, author and editor are treated as separate properties; having a > single property will allow Freebase to reconcile more easily to other > data-sources, which usually store these in the same field. This will also > allow us to record books where the illustrator is tied to the book itself, > rather to individual editions (as in most children's picture books, but as > opposed to, say, an illustrated edition of Huckleberry Finn). > See http://sandbox.freebase.com/view/guid/9202a8c04000641f8000000006c3521e > and http://sandbox.freebase.com/view/make_way_for_ducklings for some further > examples. > > Another of the new type is that a number of other properties can usefully be > shared by all types of written works, rather than being distributed onto > each. These properties are: original language, date written, copyright date, > date of first publication, and online versions. Others will probably arise, > but this seems like a good set to start with. > > (I'm copying the developers list in case anyone is writing an application > using any of the publishing domain types.) > > Thanks in advance, > Jeff Prucher > Type Librarian & Ontologist > Metaweb > > _______________________________________________ > Data-modeling mailing list > Data-modeling at freebase.com > http://lists.freebase.com/mailman/listinfo/data-modeling > > From christopher.dummy at gmail.com Fri Dec 14 17:29:02 2007 From: christopher.dummy at gmail.com (Christopher Dummy) Date: Fri, 14 Dec 2007 11:29:02 -0600 Subject: [Developers] Search Query Message-ID: I'm just wondering how the Search Query determines what to return. I know it will do some thing based on the name. Does it also do things that are related somehow? Where relatedness might just be similar types? The query I'm looking at is: http://www.freebase.com/api/service/search?query=bone&type=/user/cotton/default_domain/broadcast There is a radio station called, "107.7 The bone", and it shows up as the first query. But there are some other stations that also show up, and I cannot find any reference in them to "bone". So it is a little surprising that they show up in the search results. Anyone have a good idea of why? -- Christopher Cotton Zing/Dell Engineer http://zing.net/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freebase.com/pipermail/developers/attachments/20071214/44c3a95c/attachment-0001.htm From faye at metaweb.com Fri Dec 14 19:37:29 2007 From: faye at metaweb.com (Faye Li) Date: Fri, 14 Dec 2007 11:37:29 -0800 Subject: [Developers] Search Query In-Reply-To: References: Message-ID: <4762DB79.1080201@metaweb.com>